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个回答

2

在此之后,以管理员身份运行你的VS,然后在程序包管理器控制台中运行dotnet restore命令。


这是我在 Windows 11 上使用 VS2022 时遇到的问题。 - Taegost

2

使用VSTS时,请检查您的global.json文件。我曾经只输入了sdk版本为"2.2",这导致了解析错误(但在本地构建时没有问题)。添加完整版本号"2.2.104"即可解决问题。


2

我有同样的问题,但dotnet restore对我无效。 我安装了这个组件:

enter image description here

然后运行dotnet restore,问题就解决了。


1
在我的情况下,我将以下内容添加到我的*.csproj文件中,以完全删除“Clean”时的obj和bin文件夹。显然,这是罪魁祸首。去掉它后,一切都重新开始工作了。现在我使用“Clean Bin”扩展程序。希望这可以帮助任何遇到此问题且没有解决方法的人。
<Target Name="SuperClean" AfterTargets="Clean">
    <!-- Remove obj folder -->
    <RemoveDir Directories="$(BaseIntermediateOutputPath)" />
    <!-- Remove bin folder -->
    <RemoveDir Directories="$(BaseOutputPath)" />
</Target>    

1
为了解决这个问题,首先你需要关闭Visual Studio,然后以管理员模式重新启动。
创建一个新项目或运行你的旧项目。 然后进行操作。
Tools > NuGetPackage Package Manager > Package Manager Console

下面会打开一个控制台
然后输入一个命令
dotnet restore 

它会解决你所有的问题。


感谢您对Stack Overflow社区做出贡献的兴趣。这个问题已经有很多答案了,其中一个答案已经得到社区广泛验证。您确定您的方法之前没有被提到过吗?如果是这样的话,能否解释一下您的方法与众不同的地方,在什么情况下您的方法可能更好,并且为什么您认为之前的答案不够满意。您可以编辑您的回答并提供解释吗? - Jeremy Caney

0

我在Azure DevOps收到了一条消息,说找不到文件

我需要在我的YAML部署文件中创建这个,在构建后任务中

- task: NuGetCommand@2
  inputs:
    command: 'restore'
    restoreSolution: '**\*.sln'
    feedsToUse: 'config'
    noCache: false

0
这个缺陷的原因是:你需要在文件资源管理器中移除注入的Nuget。 解决方案:一旦你从系统中移除了那个Nuget,然后从以下位置移除。 选择工具->选项->NuGet程序包管理器->程序包源,然后取消选中Microsoft Visual Studio离线程序包选项。

0

如果你使用Dropbox,检查文件名中是否有Conflicted,在你的仓库中搜索并删除所有这些冲突的文件。

如果你移动了文件,可能会发生这种情况。


0
在我的情况下,我遇到了可用软件包源的问题。我已经将本地Nuget存储库文件夹移动到新路径,但我没有在Nuget可用软件包源中更新它。当我纠正了路径问题,在可用软件包源中更新后,一切(Nuget还原等)都正常工作了。

0

当我遇到这个错误时,对我有用的方法是添加一个global.json文件,但这可能与使用Paket而不是Nuget相关。


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