C# – Could not load file or assembly Microsoft.CodeAnalysis

cvisual studio

I have a webproject I am trying to host, but when the server tries to compile it, I get the following error:

Unhandled Exception: System.IO.FileLoadException: Could not load file
or assembly 'Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35' or one of its
dependencies. The located assembly's manifest definition does not
match the assembly reference. (Exception from HRESULT: 0x80131040)
—> System.IO.FileLoadException: Could not load file or assembly 'Microsoft.CodeAnalysis, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35' or one of its
dependencies. The located assembly's manifest definition does not
match the assembly reference. (Exception from HRESULT: 0x80131040)
— End of inner exception stack trace — at Microsoft.CodeAnalysis.CSharp.CommandLine.Program.Main(String[] args)

So the server has an older version of CodeAnalysis than my project. So lets try a binding redirect!

<dependentAssembly>
    <assemblyIdentity name="Microsoft.CodeAnalysis" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-9.9.9.9" newVersion="1.0.0.0" />
</dependentAssembly>

Sadly, I still get the same error. What am I doing wrong?

Best Answer

I figured this out myself. To anyone reading this, the problem was that the Nuget package Microsoft.CodeDom.Providers.DotNetCompilerPlatform (which also contains the CodeAnalysis package) was the wrong version. I created a new webproject, updated the offending Nuget package right away, and the problem was solved.