2012-04-20 67 views
1

我創建了一個.NET庫,我想創建一個GUI,通過PowerShell調用庫。爲了調用cmdlet,我必須將an entry添加到Windows註冊表中,因爲該庫是針對.NET 4編譯的。託管的PowerShell運行.NET 4管理單元

它工作正常,但不適用於GUI中的PowerShell主機。我可以做些什麼來設置PowerShell主機來運行CLR 4管理單元?

var rsConfig = RunspaceConfiguration.Create(); 
var myAssembly = new AssemblyConfigurationEntry("AssemblyName", "C:\...\Assembly.dll"); 
rsConfig.Assemblies.Append(myAssembly); 
var runSpace = RunspaceFactory.CreateRunspace(rsConfig); 
runSpace.Open(); 

using (var ps = PowerShell.Create()) { 
    ps.Runspace = runSpace; 
    ps.AddCommand("Get-MyCmdlet"); 
    ps.AddParameter("Param1"); 
    ps.AddParameter("Param2"); 
    foreach (var result in ps.Invoke()) { // CommandNotFoundException 
     Debug.WriteLine(result.ToString()); 
    } 
} 

回答

1

問題解決了。這有點複雜。我寫了關於它的an article。基本上追加裝配是一種錯誤的方法。更簡單的方法是註冊該程序集。

+0

您應該將其標記爲已接受。 – JasonMArcher 2012-05-03 18:29:07