无法添加对System.IO、System.Runtime和System.Threading.Tasks的引用

6
我正在使用Visual Studio Community 2015开发一个针对.NET 4.5的Visual Basic应用程序。由于不是我编写的应用程序,因此我使用NuGet添加了所有缺少的依赖项,但是有3个依赖项无论我如何尝试都无法添加。构建项目时,我会得到许多错误之一:
“此项目引用了在此计算机上缺失的NuGet软件包。启用NuGet软件包还原以下载它们。有关更多信息,请参见http://go.microsoft.com/fwlink/?LinkID=317567。”
这些是依赖项:
  • System.IO
  • System.Runtime
  • System.Threading.Tasks
我尝试使用NuGet安装它们,但是当我尝试安装System.IO时,例如,我会遇到这个错误,该软件包还会安装System.Runtime和System.Threading.Tasks:
“无法安装软件包'System.Runtime 4.0.20'。您正在尝试将此软件包安装到一个目标为'.NETFramework,Version=v4.5'的项目中,但该软件包不包含与该框架兼容的任何程序集引用或内容文件。有关更多信息,请联系软件包作者。”
我也试图手动添加它们,添加我的情况下的.dll在以下位置:
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.IO.dll C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Runtime.dll C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Threading.Tasks.dll
但是它也不起作用。我也尝试过删除System.Runtime,正如此处所说和答案此处,但都没有成功。
这是我的参考文献的图像:

enter image description here


2
System.Runtime 4.0.20需要NET4.6。我认为这是NuGet包的问题,正如在此处报告的那样https://github.com/NuGet/Home/issues/1243 - Dan
1
有人找到解决方法了吗? - Steve
我也遇到了同样的问题。很想知道答案。 - drogon
1个回答

0

我也遇到了这个问题。我通过以下方式解决了这个问题:

1. 删除 bin 和 obj 文件夹 您可以使用以下命令清除项目中的 bin 和 obj 文件夹。 打开命令提示符,转到项目的根目录,然后运行以下命令:
FOR /F "tokens=*" %G IN ('DIR /B /AD /S bin') DO RMDIR /S /Q "%G

FOR /F "tokens=*" %G IN ('DIR /B /AD /S obj') DO RMDIR /S /Q "%G

2. 删除我的机器上的临时文件
为了避免这个问题,可以维护一个单独的文件夹(DependentAssembly)来存储这些程序集。当使用nuget还原包时,它会更新新的包dll。因此,在新的程序集中更改现有方法可能会导致构建错误。 在此输入图片描述

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接