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