visual-studio-2012dependenciesnuget

Visual Studio/ NuGet missing references


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?


Solution

  • 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.