我正在尝试在我的C#应用程序中使用PowerShell中的MSOnline
模块。当我从PowerShell终端内运行Get-Module -ListAvailable
时,我可以在模块列表中看到MSOnline
。但是,如果我从C#应用程序中运行相同的命令,则MSOnline
不是列出的模块之一。
我的PSModulePath
环境变量确实包含了MSONLINE模块C:Windowssystem32WindowsPowerShellv1.0Modules
的路径。另外,我正在运行以下代码并检查results
变量,该变量没有模块。
PowerShell ps = PowerShell.Create();
ps.AddScript("Get-Module -ListAvailable");
var results = ps.Invoke();
任何人都可以解释为什么该应用程序没有看到该模块,以及我可以做些什么来修复它?谢谢。
在绝大多数情况下,该模块已注册或仅适用于32位或64位PowerShell。您如何编译C#程序?如果是AnyCPU,则可能会运行64位,并且不会看到32位模块。尝试在x86和x64之间切换您的C#程序,看看哪个可以找到模块。