1

.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());
    }
}
4

1 に答える 1

1

問題が解決しました。少し複雑でした。それについての記事を書きました。基本的に、アセンブリを追加することは間違ったアプローチです。より簡単な方法は、そのアセンブリを登録することです。

于 2012-04-21T15:19:37.160 に答える