Assets file project.assets.json未找到。运行NuGet包还原。

541
我试着使用 nopCommerce(基于 .NET Core 开发),但在运行该项目时,遇到了 52 个错误,告诉我要运行一个 NuGet 包还原。报错信息为:“Assets file ~\obj\project.assets.json' not found. Run a NuGet package restore to generate this file. Nop.Web.MVC.Testsote”。当我右键单击解决方案并选择还原 NuGet 包时,出现以下信息:“All packages are already installed and there is nothing to restore.”。但这些 52 个错误仍然存在,并且在“工具 -> NuGet 包管理器 -> 管理解决方案的 NuGet 包”中,该解决方案上没有安装任何内容。同时,我最近将 VS2017 升级到了 15.5.4 版本。

您是否已经同意让 NuGet 进行还原操作?请前往“工具” -> “选项”,搜索 NuGet 并勾选“允许 NuGet...”选项。 - imps
34
如果有人在使用Mac电脑时遇到这个问题,可以通过移除代码库路径中的空格来解决(这些空格是在进行git pull操作时创建的):将"My%20Project"修改为"MyProject"。 - David Hague
2
@DavidHague 谢谢你关于在Mac上修复带空格的存储库路径的提示 - 那是我的问题 - 谢谢! - AVH
2
@DavidHague 节省了很多时间。谢谢你。空间是问题所在。 - Prabhat Ranjan
右键点击解决方案,选择“还原 NuGet 包”对我很有效。 - Nick Westgate
显示剩余6条评论
41个回答

0
在我的情况下,这是一个 .net6 项目,并且构建发生在 DevOps windows-2019 代理上。

enter image description here

解决方案:windows-2022 可以构建 .net6。

0

遇到了类似的问题。原来我没有访问%APPDATA%\Local\Temp\NuGetScratch\lock的权限。

一旦我获得了访问权限,就可以运行nuget restore,然后一切都开始正常工作了。


0

我没有找到微软建议的方法,即删除“packages”文件夹

来源:故障排除包恢复错误

您可能会因缺少文件而遇到构建错误,提示使用NuGet恢复下载它们。但是,运行还原可能会说:“所有包都已安装,没有需要还原的内容。”在这种情况下,删除packages文件夹(使用packages.config时)obj/project.assets.json文件(使用PackageReference时),然后再次运行还原。如果错误仍然存在,请使用命令行中的nuget locals all -cleardotnet nuget locals all --clear清除全局包和缓存文件夹,如管理全局包和缓存文件夹所述。


0

0

我遇到了非常奇怪的经历!

之前我使用GIT bash和GIT cmd-Line进行克隆时,遇到了上述问题。

后来,我使用Tortoise-GIT进行克隆,一切都按预期工作。

也许这是一个疯狂的答案,但尝试一次可能会节省你的时间!


0
在使用VS-2019 vs 16.4.0添加WinForms Core 3.1项目(从项目模板)并尝试直接运行时,出现了这个问题。清理或重建整个解决方案都没有起作用。
我只是重新加载了我的解决方案...也就是文件/关闭解决方案,然后重新打开它并重新构建解决方案,问题就解决了。

0
对我来说,这其实是一个NuGet源凭证问题。最近我更改了访问Nexus服务器的密码,而Visual Studio在尝试通过Windows凭据管理器访问该服务器上的NuGet时仍然使用旧密码。为了解决这个问题,我需要在凭据管理器中删除那些过时凭据的条目,然后当我进行NuGet还原操作时,它会提示我输入新密码,并将其保存在凭据管理器中。你可以使用CmdKey.exe从命令行访问凭据管理器。

0

我的问题是构建配置平台不匹配。一旦我将“任何 CPU”更改为“x64”,我就能够发布。

enter image description here


0
哇。这个明显给人们带来了麻烦(包括我自己)。正如其他人所指出的,似乎大量的失败案例可能导致类似的证据集。
无论如何,对我来说,在尝试发布时,我遇到了“project.assets.json未找到”的错误。在尝试了这里和其他地方找到的许多建议后,花费了半天时间,我找到了一个解决方法,并且我想添加我的解决方案以帮助其他人。
  1. 确保目录“{PROJECT-ROOT}\obj\publish\browser-wasm”存在,如果需要的话创建它。
  2. 在“{PROJECT-ROOT}\obj”目录中找到以下5个文件:
    project.assets.json
    project.nuget.cache
    {PROJECT-NAME}.csproj.nuget.dgspec.json
    {PROJECT-NAME}.csproj.nuget.g.props
    {PROJECT-NAME}.csproj.nuget.g.targets
  1. 将这5个文件复制到"{PROJECT-ROOT}\obj\publish\browser-wasm"目录下,如果需要覆盖,请进行覆盖。
  2. 如果您的项目依赖的任何项目的依赖项发生了更改,那么您还应该对每个项目执行步骤1、2和3。
  3. 重新启动Visual Studio。

这让我解决了问题,现在我可以发布了。但是,每次我添加新的依赖项时,我都需要重新执行这些步骤。


-1

尝试这个(对我有效):

  • 以管理员身份运行VS
  • 手动更新NuGet到最新版本
  • 删除项目中的所有bin和obj文件。
  • 重新启动VS
  • 重新编译

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