Visual Studio/ NuGet missing references

2020-07-02 05:18发布

I had some problems with my solution's references since somebody went and messed up NuGet... restoring from source control rendered the projects unloadable, and I had to play around a bit to finally get things to load. When I was finally able to get my projects to load properly (after one heck of a headache), I had a pretty big experimental mess to clean up, and now nothing builds.

Nuget thinks my dependencies are installed. Visual Studio disagrees.

enter image description here

What do I have to do to make NuGet and Visual Studio agree with each other?

4条回答
Explosion°爆炸
2楼-- · 2020-07-02 06:00

In Visual Studio 2017 for Asp.Net Core project it was enough to unload and then reload .csproj file

查看更多
beautiful°
3楼-- · 2020-07-02 06:08

It is not simple but try following steps:

  1. In package manager console restore your nuget packages
  2. Open csproj in notepad and check if paths are correct. If not repair them.
  3. If above steps won`t work in package manager console reinstall all your packages.
  4. If the project is open, Unload it, then Reload it. This forces Visual Studio to re-resolve the references.

Explanation:

When nuget add reference it add it in csproj like below:

<Reference Include="Newtonsoft.Json">
  <HintPath>..\packages\Newtonsoft.Json.4.5.9\lib\net40\Newtonsoft.Json.dll</HintPath>
</Reference>

Which means that package number is in HintPath. After you merge two branches, the nuget version numbers probably changed. This causes that HintPath should also be changed to proper path with version. That is why Visual Studio has problems to find them.

查看更多
Viruses.
4楼-- · 2020-07-02 06:10

(VisualStudio 2017). None of the suggestions here worked... --until I completely closed out of VisualStudio and restarted it. It took a couple seconds longer than usual, but all the dependencies were restored thereafter!

查看更多
可以哭但决不认输i
5楼-- · 2020-07-02 06:15

In your Visual Studio Solution folder, open the 'packages' folder and delete everything which is inside that folder. Then restore nuget packages.

查看更多
登录 后发表回答