提问者:小点点

NuGet包丢失


我搜索了这个问题,但没有一个解决方案奏效。我安装了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

  1. 解决方案中没有。nuGet文件夹。
  2. 我在解决方案中有一个packages文件夹,当我删除它时,看起来NuGet确实重建了依赖项,但项目仍然存在上述错误。
  3. 我尝试从TFS中删除该项目,但它没有修复该项目。
  4. 与上述错误一起,项目中的所有引用都具有黄色警告标志,并表示它们丢失。
  5. 当我检查项目的NuGet包管理器时,所有“缺少”的东西旁边都有一个绿色勾号,包括Microsoft.Net.Compilers.
  6. 我尝试添加一个新的Web API/MVC项目,它遇到了类似的问题,其中大多数引用(如Owin)都“丢失”了,并带有黄色警告标志。

共3个答案

匿名用户

我今天也犯了同样的错误(丢失了完全相同的包)。我还创建了一个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