获取 Nuget 包丢失错误

10

在编译我的MVC 5应用程序时,我遇到了以下问题。以下是错误信息:

严重级别 代码 描述 项目文件 行数 抑制状态 错误 此项目引用了在此计算机上缺失的NuGet软件包。使用NuGet软件包还原来下载它们。有关更多信息,请参见http://go.microsoft.com/fwlink/?LinkID=322105。缺失文件为..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props。 WikidoctorAdmin E:\My Projects\Wiki-Doctor\Wiki-Doctor.com\Wiki-Doctor.com\WikidoctorAdmin\WikidoctorAdmin.csproj 2107

请帮助我解决这个错误。


1
你试过按照错误信息建议的方式操作了吗 - 使用NuGet包还原? - EkcenierK
2
阅读错误信息? - vidstige
1
可能是重复的问题:构建错误,此项目引用了NuGet - John Gardner
1
@vidstige 错误出在哪里。还原不起作用,事实上,即使在还原选项中没有任何可选择的内容,我也遇到了这个错误。 - RustyH
5个回答

52

我曾经遇到同样的问题,通过在文本编辑器中打开项目并删除以下部分来解决它:

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use 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('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
    <Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
</Target>

对于这个项目,我不需要使用Nuget。

希望这能有所帮助。


1
即使在我的项目中使用了NuGet,这对我也起作用。 - joehanna
这太棒了!谢谢你! - JanMer
了不起的 @AxelWass - Arjmand
以上代码应该在哪里找到?在哪个文件中? - Jilani pasha
谢谢,已在.csproj文件中找到。 - Jilani pasha

2
该项目名称超过了248个字符。您需要将路径重命名为不超过248个字符,然后打开解决方案并重新构建,NuGet 将会被更新。

1
你可以通过以下两种方式之一解决此问题:
在“工具/ Nuget包管理器”下: 菜单屏幕截图 1)选择第一个选项(Package manager Console)。
  • 将出现软件包管理器控制台窗口(通常位于屏幕底部)
  • 您应该看到一个按钮,上面写着“Restore Missing packages”...点击它。
此方法仅适用于此项目...您需要为每个缺少软件包的项目重新执行此操作
2)选择“包管理器设置”
  • 确保选中了复选框“允许Nuget下载丢失的包
  • 重新构建您的方案
从现在开始,Nuget将自动下载缺失的软件包。这更容易,但可能并不总是您想要的。

24
重置按钮在控制台(VS-2015)中没有出现,复选框已经被选中,所以这对我来说没有任何用处。无论如何,感谢。 - Atri Banerjee

1
这对我有用,因为我遇到了类似的错误 -
进入你的问题项目引用 - 找到带有黄色标记的引用 打开解决方案nuget包管理器并“重新安装”具有这些黄色标记的nuget包中的dll。
逐个重装的简单方法 - 在右侧选择nuget,在左上部分会有选定的项目。 在左下部分 - 选择一个版本下降,安装,选择一个版本上升(您需要的版本),安装 - 对所有问题nugets重复此操作。

0
我有相同的问题,我是这样解决的: - 删除解决方案项目下的每个obj和bin文件夹, - 使用NuGet包管理器还原和更新所有软件包。 希望能帮到你。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接