找不到Microsoft.web.Infrastructure.dll - Visual Studio 2015

Raj*_*Raj 5 .net c# nuget nuget-package visual-studio-2015

我在我的解决方案的许多项目的package.config中有这个dll(Microsoft.web.Infrastructure.dll).没有构建错误,并且DLL已下载到Solution的packages文件夹中.我在应用程序命中的每个项目上丢失dll时遇到运行时错误.当我查看单个项目bin文件夹时,我没有看到这个dll被复制.但是正如我之前提到的那样,dll被下载到解决方案的packages文件夹中.

临时解决方案 -

  1. 手动将此dll复制到所有单个项目箱
  2. 将此dll放在GAC中

这个问题只出现在我的机器上,而不是任何其他同事的机器上.令人惊讶的是,有些人将这个dll复制到项目文件夹中,而其中一些没有.它适用于他们没有GAC中的这个DLL并且没有任何手动操作,干净的重建为他们做了一切.

我有一个短期的修复,但我更好奇,知道它如何在其他机器上工作,我错过了什么.

到目前为止我尝试过的东西 - 清理Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root ....清理解决方案并关闭重新打开解决方案,最后重建解决方案

与visual studio 2013相比,Visual Studio 2015没有清晰的nuget缓存.

仅供参考 - 我有Visual Studio 2015和所有其他机器都在2013年,如果不是别的,这就是我现在正在看的地方.

任何帮助表示赞赏.

Wei*_*SFT 11

请检查Project References中是否存在Microsoft.web.Infrastructure.dll.如果没有,请尝试使用Win的建议,通过以下命令在软件包管理器控制台中重新安装软件包:

Update-Package -reinstall Microsoft.Web.Infrastructure

因为NuGet Restore仅将基于package.config文件的包恢复到packages目录,但默认情况下不会将引用添加到项目中.所以我们需要强制重新安装包以将引用和内容文件添加到项目中.

如果您的项目参考中已存在该dll,则需要检查"复制本地"的属性值."复制本地"属性确定是否将引用复制到本地bin路径.如果要将参考复制到bin文件夹,则应设置CopyLocal = True.有关详细信息,请参阅设置复制本地属性.

  • 你救了我的一天 (2认同)