我正在尝试使用nopCommerce(这是用.NET Core编写的),但当我想运行该项目时,我面临52个错误告诉我运行nuget包恢复
未找到资产文件〜\ obj \ project。 assets.json'。运行NuGet包还原以生成此文件。 Nop.Web.MVC.Testsote
当我右键单击解决方案并选择Restore Nuget Packages时,我收到以下消息:
所有软件包都已安装,无需恢复。
但是那些52个错误仍然存在,并且在 工具 - > NuGet包管理器 - >管理解决方案的NuGet包 解决方案上没有安装任何内容,我最近也将我的VS2017更新为15.5.4
答案 0 :(得分:197)
要从工具>修复此错误NuGet包管理器>软件包管理器控制台只需运行:
dotnet restore
发生错误是因为dotnet cli最初没有创建所有必需的文件。执行dotnet restore会添加所需的文件。
答案 1 :(得分:41)
在我的情况下,错误是GIT存储库。名称中有空格,使我的项目无法恢复
如果这是您的问题,请在克隆
时重命名GIT存储库git clone http://Your%20Project%20With%20Spaces newprojectname
答案 2 :(得分:15)
关闭并重新打开Visual Studio,一旦我确定NuGet软件包已根据此处发布的其他答案进行了恢复,我就解决了这个问题。
答案 3 :(得分:11)
如果“ dotnet restore”无法正常工作,请执行以下步骤:
答案 4 :(得分:4)
如果此错误是作为 Azure DevOps(TFS)中的版本的一部分发生的,并且您的版本已具有 NuGet restore 任务,则此错误可能表示NuGet还原任务无法还原所有软件包,尤其是在使用自定义软件包源(例如内部NuGet服务器)的情况下。将/t:Restore;Build
添加到MSBuild参数似乎是解决该错误的一种方法,但这要求MSBuild执行其他NuGet还原操作。我相信这会成功,因为MSBuild使用Visual Studio中配置的自定义包源。一个更好的解决方案是修复NuGet还原任务。
要为NuGet恢复任务配置自定义软件包源,请执行以下操作:
NuGet.config
文件,其中列出了所有包源(Microsoft Visual Studio脱机包,nuget.org和您的自定义包源),并将其添加到源控件中。NuGet.config
的路径。/t:Restore;Build
选项。其他信息可用here。
答案 5 :(得分:2)
前面已经提到过,但是我只是想再次强调在您的路径中没有空格 的重要性!这就是让我生气的原因。您已被警告。
答案 6 :(得分:2)
选择工具> NuGet软件包管理器> 软件包管理器控制台
然后运行:
dotnet restore <project or solution name>
答案 7 :(得分:1)
对于在Azure DevOps / VSTS环境中与我有相同问题的用户,遇到类似消息:C:\Program Files\dotnet\sdk\2.2.104\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(208,5): Error NETSDK1004: Assets file '...\obj\project.assets.json' not found. Run a NuGet package restore to generate this file
在构建解决方案中的MSBuild参数中添加/t:Restore
。
答案 8 :(得分:1)
在VS-2019 vs 16.4.0上添加WinForms Core 3.1项目(来自项目模板)并尝试将其开箱即用后,看到了这一点。清理或重建整个解决方案无效。
我刚刚重新加载了我的解决方案。即文件/关闭解决方案,然后重新打开并重建它即可解决问题。
答案 9 :(得分:1)
我遇到过非常奇怪的经历!
我以前用GIT bash和GIT cmd-Line克隆过,遇到了上述问题。
后来,我克隆了Tortoise-GIT,一切正常。
这可能是一个疯狂的答案,但是尝试一次可以节省您的时间!
答案 10 :(得分:1)
当我在构建管道中设置“ Visual Studio Build”任务以在我的解决方案而不是整个解决方案中构建单个项目时,由于Azure DevOps中的此错误而损失了几个小时。
这样做意味着DevOps要么不会构建您要构建的项目所引用的任何项目(或者可能不确定某些,我不确定是哪个),所以这些项目将没有它们的生成了project.json.asset文件,然后导致此问题。
对我来说,解决方案是从使用VS Build任务转换为MSBuild任务。对单个项目使用MSBuild任务可以正确构建要构建的项目引用的所有项目,并消除此错误。
答案 11 :(得分:1)
以上对我没有任何帮助。但是只需删除所有“ bin”和“ obj”文件夹就可以了。
答案 12 :(得分:1)
使用VSTS时,请检查您的global.json文件。我仅以“ 2.2”的形式输入了sdk版本,这导致了解析错误(但在本地构建时却没有)。添加完整版本“ 2.2.104”即可解决问题。
答案 13 :(得分:1)
答案稍晚,但似乎这会增加价值。查看错误 - 它似乎发生在CI / CD管道中。
刚刚运行&#34; dotnet build&#34;足够了。
dotnet build
dotnet build运行&#34;恢复&#34;默认情况下。
答案 14 :(得分:1)
如果仅还原NuGet软件包不起作用,请确保在工具-> 选项-> NuGet软件包管理器-> 常规在 Package Restore (软件包还原)下,已选中“允许NuGet下载丢失的软件包”。
然后再次还原NuGet软件包,或者在删除obj和bin文件夹后只需重新构建。
答案 15 :(得分:1)
对我来说,我-网络恢复仍然出现错误。
我去
1工具-> NuGet软件包管理器->软件包管理器设置->单击“清除Nuget修补程序”
2个dotnet恢复
已解决的问题。
答案 16 :(得分:1)
在Visual Studio 2017中,请执行以下步骤:
1)选择工具=>选项=> NuGet软件包管理器=>软件包源,然后取消选中 Microsoft Visual Studio脱机软件包选项。
2)现在打开工具=> NuGet软件包管理器=>软件包管理器控制台。 3)在PM> dotnet恢复中执行命令。
希望它能正常工作...
答案 17 :(得分:0)
通过添加/ t:Restore; Build来解决MSBuild参数
答案 18 :(得分:0)
我在 Azure DevOps 上收到一条关于找不到文件的消息
我需要在我的 YAML 部署文件上创建这个,在构建任务之后
- task: NuGetCommand@2
inputs:
command: 'restore'
restoreSolution: '**\*.sln'
feedsToUse: 'config'
noCache: false
答案 19 :(得分:0)
您将从“ https://api.nuget.org/v3/index.json”获取所需的软件包。在软件包资源中添加它。还要确保暂时不检查其他软件包。然后在解决方案资源管理器上单击Restore Nuget Package
答案 20 :(得分:0)
我在VS2017中创建了一个点网核中的lambda时出错了。对我有用的是卸载项目并加载它。
答案 21 :(得分:0)
您可以访问:工具> NuGet软件包管理器>软件包管理器控制台
然后运行:
dotnet恢复
答案 22 :(得分:0)
尝试一下(对我有用)
答案 23 :(得分:0)
对我来说,这真是一个nuget源凭据问题。我最近更改了用于访问关系服务器的密码,并且当试图通过Windows凭据管理器访问该服务器上的nuget时,Visual Studio仍在使用旧密码。要解决此问题,我必须在凭证管理器中删除那些过时的凭证条目,然后,当我执行nuget还原时,它提示我输入密码,让我输入新密码,然后再次将其保存在凭证管理器中。您可以使用CmdKey.exe从cmd行访问凭据管理器。
答案 24 :(得分:0)
当您的构建工具未设置为对使用restore
与PackageReference
的项目执行packages.config
且主要影响Net Core和Netstandard新样式项目时,会发生此问题。
打开Visual Studio并进行构建时,它会为您解决此问题。但是,如果您使用自动化的CLI工具,则会看到此问题。
这里提供了许多解决方案。但是您只需要记住,就需要强制restore
。在某些情况下,请在构建前使用dotnet restore
。如果您使用MsBuild进行构建,只需在命令中添加/t:Restore
开关即可。
最底线,您需要查看为什么无法激活还原。坏的nuget源,丢失的还原操作,过时的nuget.exe或以上所有内容。
答案 25 :(得分:0)
就我而言,我对“可用软件包来源”有疑问。我已将本地nuget存储库文件夹移至新路径,但未在Nuget Available Package Sources中对其进行更新。当我纠正了路径问题后,请在“可用软件包源”中对其进行更新,然后一切正常(nuget恢复器等)都可以正常工作。
答案 26 :(得分:0)
在软件包管理器控制台中以管理员身份运行VS后,运行dotnet restore。
答案 27 :(得分:0)
如果@ mostafa-bouzari suggestion无效,请在“错误列表”或“输出”窗口中仔细检查以获取NuGet无法还原的错误,例如因为网络问题(如果您落后于代理服务器)。
答案 28 :(得分:0)
对我来说,我将NuGet.exe从3.4升级到4.9,因为3.4无法理解如何为.NET Core还原软件包。
答案 29 :(得分:0)
另一种方法,如果有可能您正在使用Dropbox,请检查文件名中的Conflicted
,在存储库中进行搜索并删除所有冲突的文件。
如果您移动了文件,这可能发生了。
答案 30 :(得分:0)
此缺陷的原因:您必须在文件资源管理器中删除注入的Nuget。 解决方案:在系统中删除该Nuget后,请从以下位置删除。 选择工具=>选项=> NuGet软件包管理器=>软件包源,然后取消选中Microsoft Visual Studio脱机软件包选项
答案 31 :(得分:0)
这对我有用: 添加了此软件包的来源: Microsoft和.net https://www.nuget.org/api/v2/curated-feeds/microsoftdotnet/ 然后在控制台中运行“ dotnet restore”