我试图使用nopCommerce(这是写在。net核心),但当我想运行项目时,我面临52个错误告诉我运行一个nuget包恢复

Assets文件~\obj\project.assets。Json没有找到。运行NuGet包还原生成此文件。Nop.Web.MVC.Testsote

当我使用右键单击解决方案并选择恢复Nuget包时,我得到这样的消息:

所有的包都已经安装,没有什么要恢复的。

但是这52个错误仍然存在,在工具-> NuGet包管理器->管理解决方案的NuGet包中,解决方案上没有安装任何东西,我最近更新了我的VS2017到15.5.4


要修复工具> NuGet包管理器>包管理器控制台中的此错误,只需运行:

dotnet restore

出现此错误是因为dotnet cli最初没有创建所需的所有文件。执行dotnet还原会添加所需的文件。

在我的例子中,错误是GIT存储库。它的名称中有空格,使我的项目无法恢复

如果这是您的问题,只需在克隆时重命名GIT存储库

git clone http://Your%20Project%20With%20Spaces newprojectname

当我在VS2017中创建一个lambda in dot net core时,我得到了错误。对我来说有用的是卸载项目并重新加载它。

回答这个问题有点晚了,但似乎这将增加价值。看看这个错误——它似乎发生在CI/CD管道中。

运行“dotnet build”就足够了。

dotnet构建

Dotnet构建默认运行“还原”。

关闭和重新打开Visual Studio为我解决了这个问题,一旦我确定NuGet包已经按照这里张贴的其他答案恢复。

编辑:有时只是尝试重新构建就可以解决问题。

如果只是恢复NuGet包不工作,确保在工具->选项-> NuGet包管理器->通用下的包恢复,“允许NuGet下载丢失的包”是选中的。

然后恢复NuGet包再次或只是重建后删除obj和bin文件夹。

在visual studio 2017中,请执行以下步骤:

1)选择Tool=>Options=>NuGet Package Manager=> Package Sources然后取消勾选Microsoft Visual Studio Offline Packages Option。

2)现在打开工具=>NuGet包管理器=>包管理控制台。 3)在PM>中执行命令恢复dotnet。

希望它能起作用…

以管理员身份运行VS,然后在包管理控制台运行dotnet restore。

如果“dotnet还原”不工作,以下步骤可能会有所帮助:

Visual Studio >> Tools >> Options >> Nuget Manager >> Package Sources 未选中任何第三方包源。 重建方案。

选择工具> NuGet包管理器>包管理器控制台

然后运行:

dotnet restore <project or solution name>

另外,如果你碰巧使用Dropbox,检查文件名是否冲突,在你的回购中搜索并删除所有冲突的文件。

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

造成这个缺陷的原因:你必须在文件资源管理器中删除注入的Nuget。 解决方案:一旦你在你的系统中删除了Nuget,然后从下面的位置删除。 选择工具=>选项=>NuGet包管理器=>包源,然后取消勾选Microsoft Visual Studio离线包选项

对我来说,当我做- dotnet恢复仍然发生错误。

我去了

1工具-> NuGet包管理器->包管理器设置->单击“清除所有NuGet缓存” 2 . dotnet恢复

解决问题。

这招对我很管用: 增加了这个包的来源: 微软和。net https://www.nuget.org/api/v2/curated-feeds/microsoftdotnet/ 然后在控制台中运行“dotnet restore”

使用VSTS时,检查全局。json文件。我输入的sdk版本只是“2.2”,这导致了一个解析错误(但在本地构建时没有)。添加完整版本后,“2.2.104”解决了这个问题。

对于那些在Azure DevOps / VSTS环境中遇到类似问题的人:

C:\Program Files\dotnet\sdk\2.2.104\Sdks\ Microsoft.NET.Sdk\targets\ microsoft . packagedependencyresolve .targets(208,5):错误NETSDK1004: Assets file '…\obj\project.assets。Json没有找到。运行NuGet包还原生成此文件

Add /t:恢复到生成解决方案中的MSBuild参数。

对我来说,我把NuGet.exe从3.4升级到4.9,因为3.4不理解如何恢复。net Core的包。

有关详细信息,请参见teamcity的dotnet恢复与nuget恢复

以上这些对我都不起作用。但简单地删除所有“bin”和“obj”文件夹就可以了。

在Azure DevOps中,当我在构建管道中设置“Visual Studio Build”任务来构建我的解决方案中的单个项目,而不是整个解决方案时,我在这个错误上浪费了几个小时。

这样做意味着DevOps要么不构建任何(或者可能是一些,我不确定是哪个)您构建的目标项目所引用的项目,因此这些项目不会生成它们的project.json.asset文件,这就导致了这个问题。

我的解决方案是从使用VS Build任务切换到MSBuild任务。为单个项目使用MSBuild任务可以正确地构建您正在构建的项目引用的任何项目,并消除此错误。

在我的案例中,我遇到了可用包源的问题。我已经将本地nuget存储库文件夹移动到一个新的路径,但我没有在nuget可用包源中更新它。当我纠正了路径问题,更新它在可用的包源之后,一切(nuget restor等)都工作正常。

当您的构建工具没有设置为对设置为使用PackageReference vs packages的项目进行恢复时,会发生此问题。配置和主要影响Net Core和Netstandard新风格的项目。

当你打开Visual Studio并进行构建时,它会为你解决这个问题。但是如果您使用自动化、CLI工具,就会遇到这个问题。

这里提供了许多解决方案。但你只需要记住,你需要强制还原。在某些情况下,在构建之前使用dotnet还原。如果使用MsBuild构建,只需在命令中添加/t:Restore switch。

总之,您需要了解为什么恢复不能被激活。坏的nuget源或丢失恢复操作,或过时的nuget.exe,或以上所有。

通过添加/t:Restore;Build到MSBuild参数解决

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

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

后来,我用turtle - git进行了克隆,一切正常。

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

在vs -2019 vs 16.4.0上添加WinForms Core 3.1项目(从项目模板中)并尝试开箱运行后看到了这一点。清理或重新构建整个解决方案不起作用。

我刚刚重新加载了我的解决方案。即文件/关闭解决方案,然后重新打开并重新构建它就解决了问题。

For me it turned out to be a nuget source credentials problem. I had recently changed my password for accessing a nexus server and visual studio was still using the old password when trying to access a nuget on that server through the windows credential manager. To fix it, I had to delete the entry for those outdated credentials in the credential manager and after, when I did a nuget restore, it prompted me for a password letting me enter the new password, which got saved in the credential manager again. You can access the credential manager from the cmd line using CmdKey.exe.

试试这个(对我很管用):

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

If this error occurs as part of a build in Azure DevOps (TFS) and your build already has a NuGet restore task, this error may indicate the NuGet restore task was not able to restore all packages, especially if you use a custom package source (such as an internal NuGet server). Adding /t:Restore;Build to the MSBuild Arguments seems to be one way to resolve the error, but this asks MSBuild to perform an additional NuGet restore operation. I believe this succeeds because MSBuild uses the custom package source configured in Visual Studio. A preferable solution is to fix the NuGet restore task.

为NuGet恢复任务配置一个自定义包源。

创建一个NuGet。列出所有包源(Microsoft Visual Studio Offline Packages, nuget.org和您的自定义包源)的配置文件,并将其添加到源代码控制中。 在Nuget还原任务下的Feeds to use:在我的Nuget .config中选择Feeds选项。 提供NuGet.config的路径。 从MSBuild任务中移除/t:Restore;Build选项。

更多信息可以在这里找到。

你可以去:工具> NuGet包管理器>包管理器控制台

然后运行:

点网还原

前面提到过,但我只是想再次强调在路径中没有任何空间的重要性!这就是我想要的。我警告过你了。

您将从“https://api.nuget.org/v3/index.json”获得所需的软件包。将此添加到包资源中。同时确保其他包暂时未选中。在“解决方案资源管理器”中单击“恢复原始包”

我在Azure DevOps上收到了一条关于找不到文件的消息

我需要在我的YAML部署文件中创建这个,AFTER BUILD TASK

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

在我的例子中,我在*中添加了以下内容。在“Clean”上完全删除obj和bin文件夹。显然,它就是罪魁祸首。摆脱了那个和中提琴,一切又开始运转了。现在我正在使用“清洁垃圾箱”扩展代替。希望这可以帮助任何遇到这个问题的人,上面提到的修复都不起作用。

<Target Name="SuperClean" AfterTargets="Clean">
    <!-- Remove obj folder -->
    <RemoveDir Directories="$(BaseIntermediateOutputPath)" />
    <!-- Remove bin folder -->
    <RemoveDir Directories="$(BaseOutputPath)" />
</Target>    

我的问题是构建配置平台不匹配。一旦我把“任何CPU”改为“x64”,我就可以发布了。

当我得到这个错误时,对我有用的是添加一个全局变量。json文件,但这可能与使用Paket而不是Nuget有关。

我也有同样的问题,网络资源不适合我。I安装此组件:

而运行dotnet恢复系统,问题就解决了。

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

一旦我有访问,我可以运行nuget恢复,但一切都开始工作。

在我的例子中,它是。net项目,在DevOps windows-2019代理上进行构建。

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

我没有在任何地方发现微软建议的删除“packages”文件夹的方法。

来源:解决包恢复错误

You may encounter build errors due to missing files, with a message saying to use NuGet restore to download them. However, running a restore might say, "All packages are already installed and there is nothing to restore." In this case, delete the packages folder (when using packages.config) or the obj/project.assets.json file (when using PackageReference) and run restore again. If the error still persists, use nuget locals all -clear or dotnet nuget locals all --clear from the command line to clear the global-packages and cache folders as described on Managing the global packages and cache folders.

我没有任何NuGet在我的CLI/ c++。VS2022建造良好。然而,MSBuild不工作,给我错误NETSDK1004:资产文件…obj \ project.assets。Json没有找到。运行NuGet包还原生成此文件。

我的问题的解决方案是从vcxproj文件中删除以下内容。

<EnableManagedPackageReferenceSupport>true</EnableManagedPackageReferenceSupport>

我想把真改成假可能有用。我删除了行和MSBuild现在工作。