Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Could not load file or assembly 'Microsoft.CodeAnalysis, version= 1.3.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependenc

An update occurred last night and now I find myself unable to do a ctrl + '.' for code suggestions in VS 2015. An error message comes up saying the following:

Could not load file or assembly 'Microsoft.CodeAnalysis, version= 1.3.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

I can still build and develop but this will be really annoying without this feature. I admit it, I am getting soft!

Anyone have a suggestion for fixing this bug?

like image 602
Captain America Avatar asked Mar 01 '17 16:03

Captain America


People also ask

What does 'could not load file or assembly' error mean?

Could not load file or assembly 'Microsoft.CodeAnalysis, version= 1.3.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified. If you see above error it means that it's not able to find version 1.3.1.

How do I load assemblies directly into the correct assemblyloadcontext?

From there you can load assemblies directly into the correct AssemblyLoadContext. Note that some of the members on AssemblyLoadContext are slightly different than AppDomain, but you should be able to figure it out. Examples: GetAssemblies () -> Assemblies and Assembly.LoadFile () -> loadContext.LoadFromAssemblyPath ()

Why system cannot find the file specified in SDK?

The system cannot find the file specified. As per the error you are using sdk version 7.0 , so you have to download the latest sdk and replace the dll Microsoft.xrm.sdk. and others required dll. Could not load file or assembly 'Microsoft.Xrm.Sdk, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies.

How to fix SDK version 7 0 error?

As per the error you are using sdk version 7.0 , so you have to download the latest sdk and replace the dll Microsoft.xrm.sdk. and others required dll. Could not load file or assembly 'Microsoft.Xrm.Sdk, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies.


2 Answers

As pointed out by @CaptainAmerica the solution is to update the CodeDom assembly from NuGet. One should point out how to do this in Visual Studio. I found the solution here:

https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/

Basically, in the Visual Studio menu select:

Tools-> Nuget Package Manager -> Package Manager Console

In the console that appears at the bottom of Visual Studio run this command:

Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
like image 126
Vilhelm H. Avatar answered Oct 11 '22 07:10

Vilhelm H.


If any of the options doesn't work, here is the detailed guide to handle this scenario....

First of all version is important. Notice the version mentioned in the error...

Could not load file or assembly 'Microsoft.CodeAnalysis, version= 1.3.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

If you see above error it means that it's not able to find version 1.3.1. Now please create new VS project. No preferences, it can be just simple console application. Now once project template is ready, go to Package Manager and run following command with your specified version...

Install-Package Microsoft.CodeAnalysis -Version 1.3.1

This will install all packages. Let it complete. Once it's done. We don't need this newly created project at all. You can delete it completely. Seriously! you can delete it. We did this because we wanted that package installed at global nuget level. When you install something, nuget stores it at global level of your machine as well. Path will be something like this...

C:\Users\<<Your Windows User>>\.nuget\packages

You can know your path by following...

%USERPROFILE%\.nuget\packages

Now you will see your required Microsoft.CodeAnalysis.dll there in following folder...

C:\Users\<<Your Windows User>>\.nuget\packages\Microsoft.CodeAnalysis.Common\1.3.1\lib\net45

Please note that above path contains version number (1.3.1). If your version is different, look into that version folder.

Now that you have dll with you, all that you need to do is add that dll to GAC. For that you will need GacUtil.exe

This file get installed along with Visual Studio already. You can search "GacUtil" in C drive. For me it's there on below path...

C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools

Now run command prompt as Administrator and navigate current directory to your path containing GacUtil. The run below command to install that dll in GAC.

gacutil
 -i C:\Users\<<You Windows User>>\.nuget\packages\Microsoft.CodeAnalysis.Common\1.3.1\lib\net45\Mi
crosoft.CodeAnalysis.dll

Basically providing path to dll we installed globally. It will show message on successful installation.

That's all! Now start your Visual Studio again and you will get this issue fixed.

like image 37
Dhrumil Bhankhar Avatar answered Oct 11 '22 06:10

Dhrumil Bhankhar