2012-08-07 23 views
0

我正在使用爲Outlook Live運行一些遠程Powershell腳本的C#庫I found。作爲它的工作原理證明,我做了一個單元測試,可以運行(並逐步進行調試),它僅僅調用此庫中的public static方法,後者在幕後打開遠程Powershell會話並運行腳本。Powershell腳本在一個.NET解決方案中工作,而不是另一個

這在我們的解決方案中很有用,但是當我在另一個解決方案中運行時,它不起作用,即使兩個解決方案都有相同的兩個項目和測試類。一個解決方案給我一個例外

有中加載格式的數據文件中的錯誤: Microsoft.PowerShell,C:\Users\xxxx.xxxx\AppData\Local\Temp\tmp_8c84e626-4399-420b-b874-9feeb3b1e195_tjlxhzzr.rlr\tmp_8c84e626-4399-420b-b874-9feeb3b1e195_tjlxhzzr.rlr.format.ps1xml:跳過文件,因爲下面的驗證異常:文件,因爲腳本的執行是此係統上禁用C:\Users\xxxx.xxxx\AppData\Local\Temp\tmp_8c84e626-4399-420b-b874-9feeb3b1e195_tjlxhzzr.rlr\tmp_8c84e626-4399-420b-b874-9feeb3b1e195_tjlxhzzr.rlr.format.ps1xml無法加載。請參閱「獲取幫助about_signing」的更多細節..

的嘗試我做了修改C#庫中的PSCommandUnrestricted集,但這並沒有解決問題。但是,如果我打開x86 Powershell並運行set-executionpolicy Unrestricted,我的測試將在兩個解決方案中運行。在x64版本的Powershell中更改執行策略對任何解決方案都沒有影響。

是否存在針對解決方案特定權限的某種設置?由於我沒有加載任何頁面,Web.Config或Global.asax都無關緊要,所以我不知道還有什麼會生效,因爲我在兩個解決方案中使用相同的測試運行器運行相同的單元測試(Testdriven 。淨)。

任何想法?謝謝。

回答

0

以管理員身份運行通常設置HKLM否則在HKCU 設置你需要運行設置ExecutionPolicy爲32位和64位PSH分別

HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\的PowerShell \ 1 \ ShellIds 64位操作系統\ Microsoft.PowerShell

檢查 CD 「HKLM:\ SOFTWARE \微軟\ Powershell的\ 1 \ ShellIds \微軟PowerShell的」 DIR

+0

我不知道你在說什麼。我知道你必須單獨設置執行策略,正如我在我的問題中提到的那樣。我也沒有以交互方式運行Powershell,所以在這個意義上我沒有以管理員身份運行選項。我正在使用調用Powershell的C#代碼。 – kd7iwp 2012-08-07 19:40:46

相關問題