2012-04-20 15 views
1

.NETライブラリを作成しましたが、PowerShell経由でライブラリを呼び出すGUIを作成したいとします。コマンドレットを呼び出すには、an entryをWindowsレジストリに追加する必要がありました。そのライブラリは.NET 4に対してコンパイルされているためです。.NET 4スナップインを実行するHosted PowerShell

これはうまく動作しますが、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

関連する問題