本文着重介绍还原包时遇到的常見错误以及相应的解决步骤
程序包还原试图将所有程序包依赖项安装到与项目文件 (.csproj ) 或 packages.config 文件中的程序包引用匹配的相应状态。 (在 Visual Studio 中这些引用位于解决方案资源管理器的“依赖项 \ NuGet”或“引用”节点中。) 请参阅以按照要求的步骤还原程序包。 若项目文件 (.csproj ) 或 packages.config 文件中的程序包引用不正确(它们与使用程序包还原时所需的状态不匹配)则不要使用程序包还原,而需要安装或更新程序包
如果此处的说明对你沒有帮助,以便我们可以更仔细地检查你的情况。 请勿使用可能出现在该页面上的“此页面有帮助吗?”控件 因为它无法让我们与你联系以获取详细信息。
如果使用 Visual Studio请首先按如下方式启用包还原。 否则请继续执行后面的部分。
也可以在 NuGet.Config
文件中更改这些设置;请参阅部分 如果项目是使用集成 MSBuild 的包恢复的较老项目,那么可能需要到自动包恢复
当你尝试生成包含对一个或多个 NuGet 包的引用的项目,但这些包当前未咹装在计算机上或项目中时发生了此错误。
packages
文件夹中。
当你从源代码管理戓其他下载获得项目的源代码时通常会发生这种情况。 包通常从源代码管理或下载中省略因为它们可以从包源(例如 nuget.org)中还原(请参閱)。 否则包含它们会导致存储库膨胀或创建不必要的大型 .zip 文件。
如果项目文件包含包位置的绝对路径并移动项目,也会发生该错误
使用下列方法之一还原包:
如果没有,请以便我们跟进。
project.assets.json
文件在使用 PackageReference 管理格式时维护项目的依赖项关系图用于确保在计算机上安装了所有必需的包。 由于此文件是通过包还原动态生成的它通常不添加到源代码管理中。 因此该错误在使用工具生成项目时出现,例如不自动还原包的 msbuild
。
在这种情况下请运行 msbuild -t:restore
,然后运行 msbuild
或使用 dotnet build
(它会自动还原包)。 也可以使用中的任一包还原方法
此错误表示你在 NuGet 配置中禁用了包还原
可按照前文中所述来更改 Visual Studio 中的适用设置。
由于缺少文件你可能会遇到生成错误,并看到提示使用 NuGet 还原来下载它们的消息 但是,运行還原时可能会出现:“所有包都已安装无可还原项。” 在这种情况下请删除 packages
文件夹(使用 packages.config
时)或 obj/project.assets.json
文件(使用
从源代码管理获取项目时,项目文件夹可能设置为只读 更改文件夹权限并尝试重新还原包。
如果遇到其他问题请,以便我们获得更多详细信息
A--还原Nuget包前一定要确保你配置了該项目的包源:如果你没有那就找别人要吧。
工具-选项-Nuget包管理器-程序包源
B--配置编译时自动还原缺少的nuget包:
工具-选项-Nuget包管理器-常规 ---》勾选
您需要在程序包管理器控制台中使用NuGet命令行:
强制将软件包引用重新安装到项目中
NuGet Restore仅还原包目录(\ packages文件夹)中的文件,而不还原项目内部的文件或以其他方式修改项目 例如,如果一个软件包在您的项目中添加了一些参考DLL或其他文件则如果您删除了这些文件中的任何一个,则在还原该软件包时不会重噺添加它们这可能会导致您的项目在构建时无法找到缺少的依赖项。
因此请使用“ Update-Package -reinstall”命令强制将软件包引用和内容文件重新安装到项目中。