我有一個有點奇怪的問題..以下行PowerShell中運行良好直接:C#調用PowerShell中,DLL不能加載
1) powercfg -AVAILABLESLEEPSTATES
2) powercfg -energy
直截了當不夠,-Energy產生的文件,還有其他的標誌我可以玩。
從C#運行1號線工程也沒關係(未在任何在本網站上的奇妙的方法,如
Powershell s_ps = PowerShell.Create();
s_ps.AddScript("powercfg -AVAILABLESLEEPSTATES");
Collection<PSObject> results = s_ps.Invoke();
(或通過管道運行一切,或創建PSCommand()等版本on)
在-energy上運行同樣的東西可以在控制檯上正常工作,但是如果我嘗試通過C#調用它,它會開始討論缺少'energy.dll'或它的一個依賴關係。依賴關係)當然存在 - 因爲它從命令行運行,並且無論如何都要手動驗證。
Visual Studio是在管理員模式下運行,並且只是爲了安全起見,我建立了AP和在管理員模式下試圖運行直接過
我已經手動嘗試加載的dll
s_ps.AddScript(@"[Reflection.Assembly]::LoadFrom('C:\Windows\System32\energy.dll') | Out-Null");
但它只是拋出一個額外的錯誤說它
「無法加載文件或程序集‘文件:/// C:\ WINDOWS \ SYSTEM32 \ energy.dll’或它的一個依賴」
有沒有人有什麼想法會導致什麼問題呢? (必須跑一段時間,但如果我在別人之前找到解決方案,我當然會發佈它,一天中的大部分時間都在捶打它,儘管沒有運氣)
嘗試查看'Related'左邊的一些鏈接,這裏可能會幫助你http://stackoverflow.com/questions/527513/execute-powershell-script-from-c-sharp-with-命令行參數 – MethodMan 2013-05-03 02:03:24
謝謝你的建議,其實我已經看過那一個和幾十個了。我沒有問題調用腳本(上面的代碼是基於這些各種鏈接),問題是,通過C#它不能加載內置的能源。DLL(這個鏈接和其他人不包括)。除非我錯過了 - 我肯定有機會跳過鏈接而沒有意識到?這不是一個破損dll(http://stackoverflow.com/questions/4259727/powershell-2-0-runtime-exception-could-not-load-file-or-assembly?rq=1)或類似的東西。 – 2013-05-03 16:23:26
(更新:找到了一個不需要這個調用的解決方法,我會在我的休息時間裏繼續討論這個問題,如果我想出了一些東西,我會發布它 - 無論問題是什麼,我都確信它會再次出現) – 2013-05-03 16:48:24