Assembly reference cannot be resolved - dependentAssembly issue?

.net, c#, nuget, tfs, web-config

Solution

The issue was something unexpected.

The fix was to include the following line in the project file under each relevant `<PropertyGroup>` section:

<CodeAnalysisAdditionalOptions>/assemblyCompareMode:StrongNameIgnoringVersion</CodeAnalysisAdditionalOptions>

To edit the project file, right click on the project and click on Unload Project. Now right click on the unloaded project and choose Edit MyProject.csproj

Problem

I have the following errors occurring on my build server (TFS/Visual Studio Online): ``` CA0055 : Could not load C:\a\Binaries\Api.dll. The following error was encountered while reading module 'System.Net.Http.Formatting': Assembly reference cannot be resolved: Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed. CA0058 : The referenced assembly 'Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' could not be found. This assembly is required for analysis and was referenced by: C:\a\Binaries\Api.dll, C:\a\Sources\MyLocation\packages\Microsoft.AspNet.WebApi.Client.5.1.1\lib\net45\System.Net.Http.Formatting.dll. ``` Here is the `web.config` `dependentAssembly` entry in my Api.dll project for this assembly: ``` <dependentAssembly> <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /> </dependentAssembly> ``` The actual version of the installed Json.NET NuGet package is 6.0.1: When looking in the project references, I have the Newtonsoft.Json as 6.0.0.0: The version of `System.Net.Http.Formatting` in references is 5.1.0.0. NuGet restore is enabled in the build definition and I do not have these errors on my local copy, only in TFS. Is anyone able to spot what could be the problem? I think it might be due to the `dependentAssembly` entry but I cannot get it to work.

Original source