Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Could not load file or assembly Microsoft.CodeAnalysis

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?

like image 318
yesman Avatar asked Mar 04 '16 08:03

yesman


4 Answers

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.

like image 88
yesman Avatar answered Nov 13 '22 02:11

yesman


Other possible fix (at least for Visual Studio 2015):

Get the latest Visual Studio update.

You can check for updates by going to Tools/Extensions and Updates/Updates

Same as this Q/A: Visual Studio 2015: Quick Actions no longer working, error: Could not load file or assembly Microsoft.CodeAnalysis

like image 32
Don Cheadle Avatar answered Nov 13 '22 02:11

Don Cheadle


I resolved this issue but ensuring that the version numbers of the assemblies in my web.config were correct.

Edit:

I hit this problem as well and some may wonder how the Web.Config can become incorrect. In my case I am using Web.Config Transforms so the Web.Config file gets overwritten: enter image description here

Changing the version number in Web.Configs compiler (in the Web.Template.Config) to the number matches the NuGet version does solve the issue:

<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.5.0
like image 4
Mark Avatar answered Nov 13 '22 00:11

Mark


I have had this problem today while doing an Umbraco v7.13.0 upgrade, simply updating the following package has fixed my problem, this is apparently a common problem with things like Umbraco upgrades.

Update-Package -Reinstall Microsoft.CodeAnalysis.CSharp
like image 2
Nurhak Kaya Avatar answered Nov 13 '22 00:11

Nurhak Kaya