当我试图构建我的解决方案时,我会收到以下错误消息:
严重性代码描述项目文件行抑制状态错误此项目引用此计算机上缺少的NuGet包。使用NuGet包还原来下载它们。有关更多信息,请参见http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是..\packages\Microsoft.Net.Compilers.1.1.1\build\Microsoft.Net.Compilers.props.MusicKarma C:\User\Bryan\Documents\Visual 2015\Projects\MusicKarma\MusicKarma.csproj 268
当我查看包文件夹时,我可以找到名为Microsoft.Net.Compilers.props的文件。
我试过使用Nuget还原,但它一直说我有所有的包。
当我将这个项目从TFS带到我的一台计算机时,就会发生这种情况。
发布于 2015-12-26 12:43:11
首先,我将检查您的MusicKarma项目的packages.config文件中是否有Microsoft.Net.Compilers。如果没有,那么可以从NuGet包中删除与该MusicKarma.csproj包相关的所有内容。
如果您使用的是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包来解决问题。
发布于 2018-11-09 18:30:05
对我和其他人来说,快速解决方案就像一种魅力:
如果使用VS 2015+,只需从项目的.csproj文件中删除以下行:
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>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}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>在VS 2015+解决方案资源管理器中:
发布于 2016-01-27 13:37:06
当我在文件系统中创建文件夹(不是在我的解决方案中)并移动一些项目时,出现了这个问题。
结果表明,包路径与csproj文件是相对的。因此,我不得不更改引用的"HintPath“:
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll</HintPath>
<Private>True</Private>
</Reference>至:
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll</HintPath>
<Private>True</Private>
</Reference>注意'HintPath‘中的双"..\“。
我还必须更改错误条件,例如,我必须更改:
<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.1.1\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.1.1\build\Microsoft.Net.Compilers.props'))" />至:
<Error Condition="!Exists('..\..\packages\Microsoft.Net.Compilers.1.1.1\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Net.Compilers.1.1.1\build\Microsoft.Net.Compilers.props'))" />再次注意双"..\“。
https://stackoverflow.com/questions/34465376
复制相似问题