我正在使用C#构建一个应用程序,目前它只是调用了“get-process”powershell命令。
我已编辑csproj文件以包含System.Management.Automation。
<ItemGroup>
<Reference Include="System.Management.Automation" />
在本地运行(Windows 8.1运行Powershell版本4),它可以工作。
当在运行Powershell版本2的远程Windows 7机器上运行时,程序会抛出异常。
System.IO.FileNotFoundException: Could not load file or assembly 'System.Management.Automation, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
它无法找到System.Management.Automation Version = 3.0.0.0。我曾相信这可以在任何版本的PowerShell上运行并引用本地版本。
Get-Process命令在PS V2上可行。
有没有可能停止强制使用系统管理自动化的3个版本?我已经阅读过可以在app.config中执行此操作,但未提及系统管理自动化。
感谢您的时间。
--------------------------------------------------编辑------------------------------------------------
我设定目标框架为.Net 3.5后,成功让它工作了,但是现在它强制使用PS V2。有没有办法将目标对准本地版本的系统管理dll,并让客户端使用该版本?
> choco install Powershell
即可。 - Chase Florell