Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NuGet有丢失包的问题,如何恢复?_C#_Visual Studio_Visual Studio 2015_Nuget_Nuget Package Restore - Fatal编程技术网

C# NuGet有丢失包的问题,如何恢复?

C# NuGet有丢失包的问题,如何恢复?,c#,visual-studio,visual-studio-2015,nuget,nuget-package-restore,C#,Visual Studio,Visual Studio 2015,Nuget,Nuget Package 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 package

当我试图编译我的程序时,我得到以下错误:

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中的
软件包管理器控制台来运行此命令

1.这将从解决方案中删除

nuget restore YourSolution.sln
2.如果您想升级到以前安装的版本

Update-Package -reinstall

通过删除以下目录中的内容来清除Nuget缓存可能是一个好主意:
C:\Users\{your\u username}\AppData\Local\Nuget

这可能是一个不好的方法,但我发现如果我只删除该行,它会起作用

http://go.microsoft.com/fwlink/?LinkID=317567.“HelpKeyword=“BCLBUILD2001”/>


从project.csproj中,不确定这是否会在以后引起问题,但它现在起作用。

老实说,为VS开发NuGet命令的人需要回到绘图板。他们完全忽略了这样一个事实,即有时这些DLL和/或文件会损坏或删除。a“NuGet get Packages-Force“这个选择真的可以拯救他们。我看到的唯一差距是VS和包控制台不允许您从NuGet调用强制下载。甚至通过VS清除缓存也是无用的

当我试图在解决方案根目录中不存在packages文件夹的计算机上构建项目时,遇到了这个问题

最初创建项目文件时,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>

此项目引用此计算机上缺少的NuGet包。使用NuGet Package Restore下载它们。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=322105. 缺少的文件是{0}。
据我所知,这些设置现在已经被弃用了,不知道为什么VS会首先插入它

无论如何,在删除这些行之后,VS恢复了包并再次正确构建了解决方案。

您所需要的只是: 打开软件包管理器控制台并运行以下命令:
更新软件包-重新安装


p.S:Visual Studio附带了VS2017及以上版本的NuGet Package Manager,无需安装任何其他设备。

NuGet Package的功能问题也可能是由于NuGet Package需要某些项目不满足的依赖项造成的

NuGet包可以在依赖项部分中声明依赖项,例如.NETFramework,Version=v.4.6.2,而项目的目标版本是较旧的版本(目标框架:.NET framework 4.6.1.


NuGet系统没有通知用户这一事实,项目根本无法编译。

在我的例子中,我有不同的NuGet配置,而且项目文件中的HintPath不适合

也许你应该检查HintPath是否指向正确的NuGetPackages文件夹

您还应检查文件顶部的以下条目:

在文件的底部:


所有这些路径都应指向文件结构中正确的NuGetPackage文件夹。

nuget restore TestEnvi.sln告诉我错误术语“restore”未被识别为cmdlet、函数、,脚本建议安装nuget命令只需运行安装包nuget.CommandLine,但这给了我“Package”nuget.CommandLine.3.4.3“在项目“TestEnvi”中已经存在”,对此有一种解决方法。在您的解决方案文件夹中应该有一个“packages”目录。打开此目录并删除所有目录,然后再次运行重新安装。命令
nuget restore mysolution.sln在Package Manager控制台窗口中对我不起作用,我收到以下错误:
PM>nuget restore reco.sln nuget:术语“nuget”不能识别为cmdlet、函数、脚本文件或可操作程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。
“谢谢,首先运行此:Install Package NuGet.CommandLine,然后上面为meI做了一些尝试,但没有解决问题(即使在重新启动VS后)太可怕了。一个解决办法是从你的项目中卸载软件包,然后重新安装。糟透了。现在是2020年,这仍然是断断续续的。这为我解决了这个问题。不知道为什么我的项目文件中会有这个引用。