我创建了一个 .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());
}
}