当我尝试构建我的解决方案时,我收到以下错误消息:
严重级代码说明项目文件行抑制状态错误此项目引用此计算机上缺少的NuGet程序包.使用NuGet Package Restore下载它们.有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=322105.丢失的文件是..\packages\Microsoft.Net.Compilers.1.1.1\build\Microsoft.Net.Compilers.props.MusicKarma C:\ Users\Bryan\Documents\Visual Studio 2015\Projects\MusicKarma\MusicKarma.csproj 268
当我查看我的包文件夹时,我可以找到名为Microsoft.Net.Compilers.props的文件
我曾尝试使用Nuget Restore,但它一直说我有所有的包.谁可以帮助我?
当我将这个项目从TFS带到我的一台计算机时会发生这种情况.
当我在文件系统中创建文件夹(不在我的解决方案中)并移动一些项目时,这个问题出现了.
事实证明包路径是相对于csproj文件的.所以我不得不改变我的引用的"HintPath":
..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll True
至:
..\..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll True
注意'HintPath'中的双".. \".
我还必须改变我的错误条件,例如我必须改变:
至:
再次注意双重"..".
首先,我会检查您的MusicKarma项目是否在其packages.config文件中包含Microsoft.Net.Compilers.如果没有,那么您可以从MusicKarma.csproj中删除与NuGet包有关的所有内容.
如果您使用的是Microsoft.Net.Compilers NuGet包,那么我的猜测是路径不正确.查看错误消息中的目录名称我猜想MusicKarma解决方案文件(.sln)与MusicKarma.csproj位于同一目录中.如果是这样,那么packages目录可能是错误的,因为默认情况下packages目录将位于解决方案目录中.所以我假设你的包目录是:
C:\Users\Bryan\Documents\Visual Studio 2015\Projects\MusicKarma\packages
虽然您的MusicKarma.csproj文件正在寻找道具文件:
C:\Users\Bryan\Documents\Visual Studio 2015\Projects\packages\Microsoft.Net.Compilers.1.1.1\build
因此,如果是这种情况,那么您可以通过编辑MusicKarma.csproj文件中的路径或重新安装NuGet包来解决问题.
快速解决方案对我和其他人来说就像一个魅力:
如果您使用的是VS 2015+,则只需从项目的.csproj文件中删除以下行:
This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
在VS 2015+解决方案资源管理器中:
右键单击项目名称->卸载项目
右键单击项目名称->编辑.csproj
从文件中删除上面指定的行并保存
右键单击项目名称->重新加载项目
我也从.csproj文件中提取了这部分代码:
This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.