当我尝试编译程序时,出现以下错误:
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包吗?
在 Visual Studio 中使用
Package Manager Console
运行此命令。
1.这将从解决方案恢复所有包
nuget restore YourSolution.sln
2.如果您想
重新安装软件包到与之前安装的版本相同
Update-Package -reinstall
最初创建项目文件时,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 恢复了包并再次正确构建了解决方案。
C:\Users\{your_username}\AppData\Local\NuGet
Update-Package -reinstall
P.S:VS2017及以上版本NuGet包管理器包含在Visual Studio中,无需安装其他任何东西。
NuGet 包需要项目不满足的某些依赖项。
NuGet 包可以在Dependecies 部分中声明依赖项,例如.NETFramework,版本=v.4.6.2,而项目目标是旧版本(目标框架:.NET Framework 4.6.1.)。
NuGet 系统并没有通知用户这一事实,而是项目根本无法编译。
“obj”文件夹包含多个 NuGet 相关文件,这些文件仍然引用包的 0.0.2 版本,而解决方案中的所有项目都已使用该包的 1.0.0 版本。构建解决方案失败,并显示错误消息“无法找到版本 0.0.2 的包”。最近从另一台机器复制了包含构建文件夹的解决方案。
http://go.microsoft.com/fwlink/?LinkID=317567。" HelpKeyword="BCLBUILD2001" />
来自project.csproj,不确定这是否会在以后引起问题,但目前有效。
dotnet restore
解决了问题