612

I'm trying to use nopCommerce(Which is written in .NET Core) but when I want to run the project I face 52 Errors telling me Run a nuget package restore

Assets file ~\obj\project.assets.json' not found. Run a NuGet package restore to generate this file. Nop.Web.MVC.Testsote

when I use the right click on the solution and selecting Restore Nuget Packages I get this message:

All packages are already installed and there is nothing to restore.

but those 52 Errors are still there and in Tools -> NuGet Package Manager -> Manage NuGet Packages for Solution there is nothing installed on the solution,also I Recently updated my VS2017 to 15.5.4

11
  • Have you provided consent to NuGet to restore? Go to tools, options, search for NuGet, and the check the "Allow NuGet..." option. Commented Jan 26, 2018 at 0:54
  • 37
    If anyone is on a Mac, we had this problem and fixed it by removing spaces in the repository path (which was created during the git pull): My%20Project becomes MyProject. Commented Jun 3, 2020 at 16:08
  • May take a look here at MS Docs with various workarounds (updated May 2018): learn.microsoft.com/en-us/nuget/consume-packages/… With nuget things never run smooth as click and go! Commented Jun 30, 2020 at 16:31
  • 2
    @DavidHague thank you for the tip on fixing the repo path with spaces on a Mac - that was my problem - thanks! Commented Sep 14, 2020 at 2:40
  • 2
    @DavidHague saved a lot of time. Thank you. Space was the issue. Commented Mar 29, 2021 at 15:15

47 Answers 47

955

To fix this error from Tools > NuGet Package Manager > Package Manager Console simply run:

dotnet restore

The error occurs because the dotnet cli does not create the all of the required files initially. Doing dotnet restore adds the required files.

Sign up to request clarification or add additional context in comments.

19 Comments

This was also the fix for the build server. Added a Command Line step to run "dotnet restore" after normal NuGet restore.
You may do it from MSBuild also: msbuild MySolution.sln /t:Restore
@Michael, try msbuild MySolution.sln /t:Restore;Build
If you have more than one solution file, you need to do dotnet restore solutionfilename.sln
Microsoft strongly recommends using -t:build -restore instead of /t:restore;build See here: learn.microsoft.com/nuget/reference/…
|
245

In my case the error was the GIT repository. It had spaces in the name, making my project unable to restore

If this is your issue, just rename the GIT repository when you clone

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

6 Comments

This answer should be at the beginning of the post not at the end. Solved my issue.
in my case i just renamed my physical folder by remove %20 and replace it with normal space and every thing is working well
The %20's in the folder name was the issue. Was so confused why it was failing. Thank you so much!
Agree, this was the problem (and solution) for me too. Aditionally, creating a new .NET Core MVC project in a folder with '%20' also failed to properly create the project file itself (I had to manually include the created Model, View and Controller folders in the project for instance). That should have been my first clue project creation was not done properly.
This was it - this seems to be an issue in TFS/Azure DevOps where spaeces are allowed.
|
96

In case when dotnet restore doesn't work, following steps may help:

  1. Visual Studio >> Tools >> Options >> Nuget Manager >> Package Sources
  2. Uncheck any third party package sources.
  3. Rebuild solution.

9 Comments

I recently encountered this issue for Identity server Quickstart #1: Securing an API using Client Credentials and the above solution worked for me.
Thank you! I actually removed one source that was not relevant anymore (from another solution) and on the nuget.org and MSVS Offline Packages sources I clicked the Update button. After this dotnet restore worked.
If you need 3rd party package sources or yours own organization over AzureDevOPs then follow this instruction: learn.microsoft.com/en-us/azure/devops/artifacts/nuget/…
In my case there was an entry for Microsoft offline packages and it seemed to be invalid. Took ages to find that out. Thanks.
Yes, I have added some custom NuGet references from the package manager, hence only not resolving that problem. Now works
|
90

To those with the same issue as me in Azure DevOps / VSTS environment encountering a similar message:

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

Add /t:Restore to your MSBuild Arguments in Build Solution.

In Azure DevOps build pipeline, add /t:Restore here:

enter image description here

7 Comments

Might be a rare case, but I had to also remove a property from my .csproj... Remove this if it exists: <RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>... now all is right in the world again.
Just wanted to acknowledge that this still works today in off-prem ADO with Git. I spent hours troubleshooting a pipeline for a VS 2022 .Net 7 build. This solved my issue - so thank you from one Swiftie to another (I have a 14YO daughter so it's required apparently).
This appeared to fix my pipeline, but then I was getting an empty artifact. It ended up being that an SSRS project was recently added to the solution, but the build server didn't have SSRS support yet.
This fixed the issue for me, thanks. I've added an image to the solution to make it really clear where to add the build arg.
From the command line I had to use -restore instead of /t:Restore
|
54

Closing and re-opening Visual Studio solved this issue for me, once I had made sure the NuGet packages had been restored as per other answers posted here.

Edit: Sometimes just trying to build again fixes the problem.

5 Comments

Can't believe this worked for me too after doing dotnet restore and only after this
I had some separate connectivity issues on my work LAN that were inhibitive for NuGet. Rebooting my PC resolved the issue!
This is really not an answer because sometimes you use CLI tools to get and build and you don't open VS. I know why it works with VS - because VS automatically resolves project dependencies.
@T.S. the question is tagged with "Visual Studio 2017", so I'd say this is an answer. You raise an interesting point though, that the problem lies with VS resolving dependencies. If you have any more information on what's going wrong, I'm sure it would make interesting reading : )
+1. You caught me! With VS, oh well. His version 15.5 was buggy. I think 15.5/15.6 had host of issues for reference resolution. Now, here is the answer stackoverflow.com/a/58548856/1704458
27

For me when i did - dotnet restore still error was occurring.

I went to

1 Tool -> NuGet Package Maneger -> Package Manager settings -> click on "Clear all NuGet Cache(s)"

2 dotnet restore

resolved issues.

5 Comments

I'm going to try this next time it happens. It could be a better approach than mine (close and reopen VS) which typically takes ages for me.
dotnet restore can be run in package manager console
Tried other solutions, this worked for me.
Thankyou Speed, all other suggestions in this thread didnt work until I tried your one.
Building the project was fine for me. My issue was when I was trying to add a service reference. This solution worked for me.
14

In visual studio 2017 please do following steps:

1) select Tool=>Options=>NuGet Package Manager=> Package Sources then uncheck Microsoft Visual Studio Offline Packages Option. enter image description here

2) now open Tool=>NuGet Package Maneger=>Package Manager Console. 3) execute command in PM>dotnet restore.

Hope its working...

Comments

12

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.

To configure a custom package source for the NuGet restore task:

  1. Create a NuGet.config file that lists all of the package sources (Microsoft Visual Studio Offline Packages, nuget.org, and your custom package source) and add it to source control.
  2. In the Nuget restore task under Feeds to use: select the option Feeds in my NuGet.config.
  3. Provide the path to NuGet.config.
  4. Remove the /t:Restore;Build option from the MSBuild task.

Additional information is available here.

Comments

11

For me I upgraded NuGet.exe from 3.4 to 4.9 because 3.4 doesn't understand how to restore packages for .NET Core.

For details please see dotnet restore vs. nuget restore with teamcity

2 Comments

Yes - I found this when we started migrating old .Net Framework projects across to the new .csproj project format.
To update nuget.exe... run from a VS command prompt: nuget.exe update -self It was only AFTER updating to the latest nuget, and then doing dotnet Restore that these errors went away for me
11

To fixed this issue. First you have to close the Visual Studio, then restart again in administrative mode.

Create an new project or run your older project. Then Go

Tools > NuGetPackage Package Manager > Package Manager Console

An console will be open in below

Then put a command

dotnet restore 

It will fixed all your problem.

2 Comments

Thank you for your interest in contributing to the Stack Overflow community. This question already has quite a few answers—including one that has been extensively validated by the community. Are you certain your approach hasn’t been given previously? If so, it would be useful to explain how your approach is different, under what circumstances your approach might be preferred, and/or why you think the previous answers aren’t sufficient. Can you kindly edit your answer to offer an explanation?
this fixed it for me, thanks!
10

It was mentioned earlier but I just wanted to re-emphasize the importance of not have space anywhere in your pathing! This is what was getting me. You've been warned.

2 Comments

this is what helped me - I had spaced in my path to my projects and after I removed them, it fixed it!
please don't duplicate existing answers
9

Solved by adding /t:Restore;Build to MSBuild Arguments

2 Comments

For me it does not work to do /t:Restore;Build but /t:Restore /t:Build, but thanks, your answer helped me !
9

You will get required packages from "https://api.nuget.org/v3/index.json". Add this in Package Resources. Also make sure other packages are unchecked for time being. And Click Restore Nuget Package on Solution Explorer enter image description here

Comments

7

Select Tools > NuGet Package Manager > Package Manager Console

And then Run:

dotnet restore <project or solution name>

Comments

6

Nothing above worked for me. But simply deleting all 'bin' and 'obj' folders did the trick.

1 Comment

This issue happend for me when i worked on a Dockerfile. deleting those folders made the dotnet restore in the container work properly.
6

You can go for : Tools > NuGet Package Manager > Package Manager Console

And then Run:

dotnet restore

Comments

5

I lost several hours on this error in Azure DevOps when I set the 'Visual Studio Build' task in a build pipeline to build an individual project in my solution, rather than the whole solution.

Doing that means that DevOps either doesn't build any (or possibly some, I'm not sure which) of the projects referenced by the project you've targeted for the build, and therefore those projects won't have their project.json.asset files generated, which then causes this issue.

The solution for me was to swap from using the VS Build task to the MSBuild task. Using the MSBuild task for an individual project correctly builds any projects referenced by the project you're building and eliminates this error.

Comments

5

This problem happening when your build tool is not set to do restore on projects set to use PackageReference vs packages.config and mostly affect Net Core and Netstandard new style projects.

When you open Visual Studio and build, it resolves this for you. But if you use automation, CLI tools, you see this issue.

Many solutions are offered here. But all you need to remember, you need to force restore. In some instances you use dotnet restore before build. If you build using MsBuild just add /t:Restore switch to your command.

Bottom line, you need to see why restoring can't be activated. Either bad nuget source or missing restore action, or outdated nuget.exe, or all of the above.

1 Comment

/t:Restore turned out to be the fix to my problem in a heterogeneous solution (framework, core, and standard projects mixed). The standard/core projects were failing with the error until I used this approach.
4

little late to the answer but seems this will add value. Looking at the error - it seems to occur in CI/CD pipeline.

Just running "dotnet build" will be sufficient enough.

dotnet build

dotnet build runs the "restore" by default.

1 Comment

Also can be achieved by adding step ".NET core" to pipeline (before build), and selecting "dotnet restore" command from dropdown. I'm talking specifically about VSTS pipeline here.
4

I have same problem and dotnet resotre not work for me. I Install this component:

enter image description here

and the run dotnet resotre and the problem has solved.

Comments

3

If simply restoring NuGet packages does not work make sure in Tools -> Options -> NuGet Package Manager -> General under Package Restore that the "Allow NuGet to download missing packages" is checked.

Then Restore NuGet Packages again OR just REBUILD after deleting obj and bin folders.

Comments

3

My issue was the build configuration platform was mismatched. Once, I changed "Any CPU" to "x64", I was able to publish.

enter image description here

2 Comments

I tried clearing Nuget cache and rebooting but didn't help. After following this suggestion, my WPF WAP project finally published!
Along these lines, if the .sln file doesn't have the platform set up properly, you can run into this same error. Thanks for the tip, it saved me a lot of time!
3

I did not have any NuGet in my CLI/C++. VS2022 built fine. However, MSBuild did not work giving me error NETSDK1004: Assets file ... obj\project.assets.json' not found. Run a NuGet package restore to generate this file.

The solution to my issue was removing the following from the vcxproj file.

<EnableManagedPackageReferenceSupport>true</EnableManagedPackageReferenceSupport>

I suppose changing true to false might work. I removed the line and MSBuild now works.

1 Comment

Changing to false did not work for me, but removing the whole line did! Thanks for the solution
2

run your VS as administrator after that in package manager console run dotnet restore.

1 Comment

This was the problem I was having on Windows 11 with VS2022
2

When using VSTS, check your global.json file. I had entered the sdk version as just "2.2" which caused a parse error (but not when building locally). Adding the full version, "2.2.104" solved the problem.

Comments

2

This may be obvious or an edge case but check your path as well.

When I cloned the repo I got this path:

repos\MyRepo\Field%20Service%20Project\Azure Functions\func-dev-sat-eus-01\obj\project.assets.json

The escaped characters confused the build command so that it could not reach the file because it could not find that folder.

In my case, I just replaced the '%20' with an actual space in the directory name.

Comments

1

Cause of this defect: you have to remove the injected Nuget in file explorer. Solution: Once you remove that Nuget in your system, then remove from following location. select Tool=>Options=>NuGet Package Manager=> Package Sources then uncheck Microsoft Visual Studio Offline Packages Option

Comments

1

In my case, I had the following added to my *.csproj files to fully remove obj and bin folders on 'Clean'. Apparently, it was the culprit. Got rid of that and viola, all started to work again. Now I'm using the "Clean Bin" extension instead. Hope this might help anyone who is running into this issue, and none of the mentioned fixes works.

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

Comments

1

In my case it was .net6 project and the build happening on DevOps windows-2019 agent.

enter image description here

Solution: windows-2022 can build .net6.

Comments

1

I haven't found anywhere the method suggested by Microsoft which is to delete the "packages" folder.

Source: Troubleshooting package restore errors

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.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.