我启动了一个新的 .NET Framework 4.7.2 库项目。我需要自动化 PowerShell 脚本,但 Visual Studio 参考中添加 UI 的“框架”选项卡未将 System.Management.Automation 列为选项。所以我添加了对此 Nuget 包的引用:
https://www.nuget.org/packages/System.Management.Automation/7.0.0
然后用这段代码:
PowerShell ps = PowerShell.Create();
ps.AddScript(@"C:\ps\function.ps1");
ps.AddArgument(1);
ps.AddArgument(2);
Collection<PSObject> results = ps.Invoke<PSObject>();
我收到有关我未直接引用的 DLL 版本的错误:
身份为“System.Management.Automation,Version=7.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”的程序集“System.Management.Automation”使用“System.Linq.Expressions,Version=4.2.2.0,Culture=neutral,PublicKeyToken” =b03f5f7f11d50a3a',其版本高于引用的程序集'System.Linq.Expressions',标识为'System.Linq.Expressions,Version=4.1.2.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a'
我不确定如何解决这个问题,我想也许我以错误的方式添加了我的 PowerShell 自动化库引用。目前执行此操作的正确方法是什么?
在你向我指出旧答案之前,我发现了一个类似的问题,它指向一个不同的 Nuget 包,现在标记为“已弃用”,并且无论如何看起来都不是官方的。这让我很紧张。
https://www.nuget.org/packages/System.Management.Automation.dll/
System.Management.Automation v7.0.0
仅适用于 .NET Core。如果您的项目需要 .NET Framework,则必须使用System.Management.Automation v5.1.x
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)