1

我创建了一个 .NET 库,我想创建一个通过 PowerShell 调用该库的 GUI。为了调用 cmdlet,我必须在 Windows 注册表中添加一个条目,因为该库是针对 .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());
    }
}
4

1 回答 1

1

问题解决了。这有点复杂。我写了一篇关于它的文章。基本上附加一个程序集是一种错误的方法。更简单的方法是注册该程序集。

于 2012-04-21T15:19:37.160 回答