我搜索了这个问题,但没有一个解决方案奏效。我安装了Visual Studio Professional 2015,我正在使用TFS。我的NuGet版本是3.1.6。这个问题只发生在我的C#Web API/MVC项目中。
我得到以下错误:
此项目引用了此计算机上缺少的NuGet包。使用NuGet包还原下载它们。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=322105。缺少的文件是..\packages\microsoft.net.compilers.1.0.0\build\microsoft.net.compilers.props
我今天也犯了同样的错误(丢失了完全相同的包)。我还创建了一个MVC+Web API项目。
发生这种情况是因为我将应用程序文件(包括。csproj)移到了另一个位置。我手动更新了。sln文件,但所有包依赖项现在(Visual Studio 2015)都存储在。csproj文件中。
编辑。csproj文件并更正解决方案文件夹(其中包含packages文件夹)的相对路径为我解决了这个问题。
我通过从.csproj
文件中删除以下代码解决了问题:
<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>
如果您还有一个丢失nuget包,在构建解决方案时给出错误,请使用以下命令,使用工具中的nuget command Console>中的nuget command Console;Nuget包管理器>;包管理器控制台。它将重新安装您当前的所有软件包。
Update-Package –reinstall
更新:
您可以将特定的项目名称作为参数传递。
Update-Package –reinstall -ProjectName SampleApp