尝试在C#中运行以下内容时出错。
错误是:
异常:抛出无法加载DLL wldp.dll
PowerShell ps = PowerShell.Create();
ps.AddCommand("Get-BrokerSession");
ps.AddParameter("AdminAddress");
ps.AddParameter("MYSERVERNAMEHERE");
Collection<PSObject> psr = ps.Invoke();
它还说Get-BrokerSession
不是公认的命令,但我可以在PS命令提示符下使用它而不会出现问题。
答案 0 :(得分:1)
可能需要加载Citrix特定的PowerShell模块。如果您的PS版本是3.0。
这应该解决错误:
Get-BrokerSession不是公认的命令
然后你可以进入下一步。
InitialSessionState initial = InitialSessionState.CreateDefault();
initial.ImportPSModule(new string[] { @"C:\Temp\PSModule.psm1" }); // + Include in your PSModule.psm1: function ImportCitrixModule { Asnp Citrix* }
Runspace runspace = RunspaceFactory.CreateRunspace(initial);
initial.ThrowOnRunspaceOpenError = true;
runspace.Open();
RunspaceInvoke runSpaceInvoker = new RunspaceInvoke(runspace);
runSpaceInvoker.Invoke("Set-ExecutionPolicy Unrestricted");
PowerShell ps = PowerShell.Create();
ps.Runspace = runspace;
ps.AddCommand("ImportCitrixModule"); // +
Collection<PSObject> psr = ps.Invoke();
答案 1 :(得分:0)
根据this blog post,可以帮助检查项目构建设置中的首选32位。
尝试通过UnitTest项目中的C#Powershell启动可执行文件时遇到此错误。你不能为UnitTest项目选择这个选项(所以它没有帮助我),但运行我的测试而不调试它按预期工作。我最终没有UnitTest / IntegrationTest ......