.NETライブラリを作成しましたが、PowerShellを介してライブラリを呼び出すGUIを作成したいと思います。コマンドレットを呼び出すには、Windowsレジストリにエントリを追加する必要がありました。これは、そのライブラリが.NET4に対してコンパイルされているためです。
正常に動作しますが、GUIのPowerShellホストでは動作しません。CLR 4スナップインを実行するようにPowerShellホストを設定するにはどうすればよいですか?
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());
}
}