2015-12-30 18 views
0

我使用「System.Management.Automation.dll」從C#代碼執行PowerShell命令。但我無法執行服務結構命令。如何從c#執行Service Fabric Powershell命令?

當我執行服務織物命令我碰到下面的錯誤

指定的模塊「ServiceFabric」沒有被加載,因爲沒有有效的 模塊文件在任何模塊目錄

術語'發現Connect-ServiceFabricCluster'不被識別爲cmdlet,函數,腳本文件或可操作程序的名稱 。檢查名稱的拼寫,或者如果包含路徑,請確認路徑 是正確的,然後重試。

我使用的代碼是

var shell = PowerShell.Create(); 
shell.Commands.AddScript("Import-Module ServiceFabric"); 
shell.Commands.AddScript("Connect-ServiceFabricCluster"); 
var result = shell.Invoke(); 

,當我直接從PowerShell命令窗口中執行他們這些命令的成功合作。

上面的代碼工作正常,其他PowerShell命令

我也嘗試過使用物理路徑 加載模塊 「C:\ WINDOWS \ SYSTEM32 \ WindowsPowerShell \ V1.0 \模塊\ ServiceFabric」 這沒」不管工作。

+1

你的進程與OS有相同的位數? – PetSerAl

+1

將應用程序更改爲64位,並且工作。 –

回答

1

你爲什麼試圖從C#調用powershell命令?所有的powershell命令都與API具有同等的含義 - 對於每個命令,都有一個可以直接使用的API。只需創建一個FabricClient並調用您需要的任何方法即可。

+0

我爲FabricClient安裝了nuget包,有沒有關於如何使用這個庫的文檔? msdn中有引用,但不是最新的。 –

+0

在爲FabricCliet添加Nuget之後。我寫了下面的代碼System.Fabric.FabricClient client = new System.Fabric.FabricClient(「http:// localhost:19080」); var x = await client.QueryManager.GetApplicationListAsync();此語句拋出異常{「提供的地址無效。」} \t System.Exception {System.Fabric.FabricInvalidAddressException} –

+0

您是否嘗試過使用本地FabricClient(不通過網關地址)? [本地FabricClient超載](http://msdn.microsoft.com/library/azure/mt161330.aspx)。 –