c# - 即使从 NUGet 包管理器安装了最新版本,system.runtime DLL 仍指向旧版本的问题
问题描述
我目前正在努力将 PowerShell 脚本集成到我的 ASPX Web 表单中,在此过程中,我面临以下问题,这使我无法继续前进,因为由于参考问题,我什至无法构建解决方案
a)system.Management.automation
从 NuGet 包管理器安装,但是安装后我没有看到自动添加的引用,所以我从项目位置手动添加了这个 DLL。不确定这是否不会产生问题,但假设它应该自动添加
b) system.Management.automation
7.0版本的DLL需要System.runtime
Version=4.2.2.0,所以我已经安装了System。运行时 4.3 稳定版。但是当我尝试添加最新版本时,它仍然指向旧的 4.1.2.0 版本并且失败并出现以下错误
> Error CS1705 Assembly 'System.Management.Automation' with identity
> 'System.Management.Automation, Version=7.0.0.0, Culture=neutral,
> PublicKeyToken=31bf3856ad364e35' uses 'System.Runtime,
> Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
> which has a higher version than referenced assembly 'System.Runtime'
> with identity 'System.Runtime, Version=4.1.2.0, Culture=neutral,
> PublicKeyToken=b03f5f7f11d50a3a' WebApplication16 C:\Users\****\source\repos\WebApplication16\WebApplication16\Default.aspx.cs 32 Active
以下是我尝试过的东西,但它们都不起作用
1)多次创建新项目
2)已清理并重建解决方案
3)尝试让步bindingRedirect
以Web.config
使其使用最新版本,但没有运气
4) 从参考文献中删除旧版本并尝试添加新系统。运行时版本,但是它将旧版本添加到项目中
有人可以就此提出建议吗
解决方案
我在使用 .Net 时遇到了这个确切的问题,这是一个简单的解决方案:
打开 PowerShell 并执行以下命令
复制 ([PSObject].Assembly.Location) C:\
这会将 System.Management.Automation 的副本放在您的 C: 驱动器路径上。如果您愿意,可以将其移动到您的解决方案文件夹中。
在您的 Visual Studio 项目中,右键单击解决方案资源管理器选项卡中的引用树,然后单击添加引用
单击浏览,然后找到步骤 1 中的 .dll。
重建,你应该很高兴!
推荐阅读
- c - execinfo.h:使用cygwin在windows上安装VIC5.0.1时没有这样的文件或目录
- python - Python Shapely 点位于多边形内,但不在多边形边界内
- android - 如何隐藏我的应用程序的域地址?
- python - 将两个预训练模型与 2 个不同的类(数据集)结合起来进行预测
- php - html视频不播放
- html - 在 html 上使用 mailto,如何在 iOS 中从 Safari 打开电子邮件应用程序?
- notepad++ - 使用正则表达式查找和替换记事本++
- wordpress - 将 PostID 添加到自定义帖子的 URL
- c# - C# DateTime.ToString() 方法是否存在时区问题?
- python - 如何跳过循环中的值而不删除python中的值