我有一个 .NET 4.0 C# 项目,我需要在 powershell 运行空间中通过 C# 运行 Powershell。我已经测试了我的代码,一切正常。
在新计算机(Win10、VS2017)上打开同一个项目并尝试运行同一个项目时出现问题。我已经在以下位置引用了 DLL:
C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Management.Automation\v4.0_3.0.0.0__31bf3856ad364e35\System.Management.Automation.dll
也使用命令执行此操作
using System.Management;
using System.Management.Automation;
using System.Management.Automation.Runspaces;
Run Code Online (Sandbox Code Playgroud)
但无法识别 System.Management.Automation 和 System.Management.Automation.Runspaces。
出现错误:命名空间“System.Management”中不存在类型或命名空间名称“Automation”(您是否缺少程序集引用?)
不知何故,引用没有被使用......
不确定到底发生了什么,但是当我引用以下 DLL 时:
C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Management.Automation\v4.0_3.0.0.0__31bf3856ad364e35\System.Management.Automation.dll
VS 忽略了这个 DLL 并抱怨我们缺少自动化命名空间...虽然这个 DLL 显示为 .NET 4.0,但显然它是用更高版本的 .NET 编译的,这可以解释为什么它被忽略了。
为了解决这个问题,我必须通过浏览和选择这个 DLL 添加一个引用:
C:\Windows\assembly\GAC_MSIL\System.Management.Automation\1.0.0.0__31bf3856ad364e35\System.Management.Automation.dll
这可能看起来像是 Powershell 引擎的旧版本。
可能对此有所贡献的另一个注意事项是,在我的新 Win10 机器上,我安装了 VS2017,所以我没有手动安装 .NET 4.0 FW,也许 VS2017 安装放置了更高版本的 System.Management.Automation DLL...
| 归档时间: |
|
| 查看次数: |
6726 次 |
| 最近记录: |