Usman lqbal
Usman lqbal

Reputation: 974

NuGet packages not restore in visual studio 2017

I have Asp.netCore solution which was working fine on Visual Studio 2015 and then i moved to Visual Studio 2017. Now the problem is that in Visual Studio 2017 on every nuget packages there is yellow exclamation mark. Following are solution which i have tried so far.

I'm using Visual Studio Version: 15.3.1

You can see yellow mark on every nuget package

Note: I have searched and found following solution and tried but did not resolve my issue.

Solution 1

Upvotes: 8

Views: 14581

Answers (4)

Jack Martin
Jack Martin

Reputation: 126

As mentioned in Microsoft Installing and reinstalling packages with package restore Documentation, you should Update-Package -reinstall:

Update-Package -reinstall -ProjectName <project> command where is the name of the affected project as it appears in Solution Explorer. Use Update-Package -reinstall by itself to restore all packages in the solution.

If you still have the error, try edit your project file, check if there is A path refrence error there, also check the project/solution nuget config file.

Upvotes: 10

Jackson
Jackson

Reputation: 131

By default, new installation of visual studio did not configure package source to search packages online. That caused the problem.

I found the answer with a little bit more work from a stackoverflow link: https://stackoverflow.com/a/32360953/1503372.

That answer mentions to use "https://www.nuget.org/api/v2" url to restore packages. When I opened the package manager console in visual studio 2017, I found it was searching for packages from my PC only (offline search).

I then added "https://www.nuget.org/api/v2" url as a source for restoring packages and it worked.

Follow below steps to add a package source.

  1. Right click project > Manage nuget package and you will see "package source label".

  2. Add highlighted URL to package source.

  3. Select "All" as package source.

Once you have configured your visual studio to search for packages online, your all packages will be restored.

Upvotes: 2

Enrico
Enrico

Reputation: 6256

I discovered a wrong configuration in the nuget.config. I don't know why, in this file there are some exclusion for my current project.

You can see your global configuration running this command in File Explorer

%AppData%\NuGet\NuGet.Config

Upvotes: 0

Dave Friedel
Dave Friedel

Reputation: 1088

I found the answer on another thread here and credit should go to @AxelWass although he did not specifically focus it towards this, it absolutely fixes this issue. The above answer did not.


I had the same issue and solve it by opening the project in a text editor and deleting the following section:

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
  <PropertyGroup>
     <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
   </PropertyGroup>
   <Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
   <Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
</Target>

Once this is removed, it will resolve this nightmare issue that VS2017 and PM seems to be unable to resolve. I too have run into this multiple times - especially when I blend many projects in the same solutions directory.

Upvotes: 17

Related Questions