[英]NuGet has problems with missing packages, how to restore?
当我尝试编译我的程序时,出现以下错误:
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=317567.
现在,当我右键单击解决方案并按
All packages are already installed and there is nothing to restore.
我尝试手动重新安装每个没有解决问题的包,我尝试重新安装 NuGet 但这也没有帮助,我什至尝试重新安装 Visual Studio。
我还尝试从 tfs 文件夹中移动包文件夹以覆盖我的包文件夹,但这并没有解决任何问题。 我还尝试在缺少此软件包的情况下重新下载它们,这也没有解决问题。
有人知道如何恢复nuget包吗?
老实说,无论谁为 VS 开发了 NuGet 命令,都需要回到绘图板。 他们完全忽略了有时这些 DLL 和/或文件被损坏或删除的事实。 “NuGet Get-Packages -Force”选项真的可以节省他们的培根。 我看到的唯一差距是 VS 和 Package 控制台不允许您从 NuGet 调用强制下载。 即使通过 VS 清除缓存也没有用。
当我尝试在解决方案根目录中不存在包文件夹的计算机上构建我的项目时遇到了这个问题。
最初创建项目文件时,VS2019似乎在项目文件中添加了以下内容:
<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.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
</Target>
据我了解,这些设置现在已被弃用,不知道为什么 VS 首先插入它。
无论如何,在删除这些行之后,VS 恢复了软件包并再次正确构建了解决方案。
通过删除以下目录中的内容来清除 Nuget 缓存可能是个好主意: C:\\Users\\{your_username}\\AppData\\Local\\NuGet
嗯,这可能是一种糟糕的方式,但我发现如果我只是删除该行,它就可以工作
http://go.microsoft.com/fwlink/?LinkID=317567。" HelpKeyword="BCLBUILD2001" />
从 project.csproj ,不确定这是否会在以后引起问题,但现在可以使用。
您只需要:打开包管理器控制台并运行以下命令: Update-Package -reinstall
PS :VS2017 及以上的 NuGet 包管理器包含在 Visual Studio 中,无需安装任何其他东西。
NuGet 包的功能问题也可能是因为NuGet 包需要项目不满足的某些依赖项。
NuGet 包可以在Dependecies部分中声明依赖项,例如 .NETFramework,Version=v.4.6.2 而项目针对的是旧版本(目标框架:.NET Framework 4.6.1. )。
NuGet 系统没有将这一事实通知用户,而是该项目根本不编译。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.