web-dev-qa-db-fra.com

Impossible de charger le fichier ou l'assembly Microsoft.CodeAnalysis

J'ai un projet Web que j'essaie d'héberger, mais lorsque le serveur essaie de le compiler, l'erreur suivante apparaît: 

Exception non gérée: System.IO.FileLoadException: impossible de charger le fichier ou Assembly 'Microsoft.CodeAnalysis, version = 1.1.0.0, Culture = neutre, PublicKeyToken = 31bf3856ad364e35 'ou l'un de ses dépendances. La définition du manifeste de l’Assemblée localisée n’est pas correspondre à la référence de l'Assemblée. (Exception de HRESULT: 0x80131040) ---> System.IO.FileLoadException: impossible de charger le fichier ou l'assembly 'Microsoft.CodeAnalysis, version = 1.0.0.0, Culture = neutre, PublicKeyToken = 31bf3856ad364e35 'ou l'un de ses dépendances. La définition du manifeste de l’Assemblée localisée n’est pas correspondre à la référence de l'Assemblée. (Exception de HRESULT: 0x80131040)
--- Fin de trace de pile d'exception interne --- dans Microsoft.CodeAnalysis.CSharp.CommandLine.Program.Main (String [] args)

Le serveur a donc une version plus ancienne de CodeAnalysis que celle de mon projet. Essayons donc une redirection de liaison!

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

Malheureusement, j'ai toujours la même erreur. Qu'est-ce que je fais mal?

26
ohyeah

J'ai compris cela moi-même. Le problème était que le package Nuget Microsoft.CodeDom.Providers.DotNetCompilerPlatform (qui contient également le package CodeAnalysis) était une mauvaise version. J'ai créé un nouveau projet Web, mis à jour immédiatement le paquet Nuget incriminé et le problème a été résolu.

32
ohyeah

J'ai résolu ce problème mais en m'assurant que les numéros de version des assemblys de mon web.config étaient corrects.

Modifier:

Je rencontre aussi ce problème et certains peuvent se demander comment Web.Config peut devenir incorrect. Dans mon cas, j'utilise Web.Config Transforms pour que le fichier Web.Config soit écrasé:  enter image description here

Changer le numéro de version dans le compilateur Web.Configs (dans le Web.Template.Config) pour qu'il corresponde à la version de NuGet fait, résolvez le problème

<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.5.0
4
Mark

Autre solution possible (au moins pour Visual Studio 2015):

Obtenir la dernière mise à jour de Visual Studio.

Vous pouvez vérifier les mises à jour en allant à Tools/Extensions and Updates/Updates

Identique à celui ci-dessous: Visual Studio 2015: les actions rapides ne fonctionnent plus, erreur: impossible de charger le fichier ou l'assembly Microsoft.CodeAnalysis

4
mmcrae

Si aucune des options mentionnées ne fonctionne, merci de vous adresser à cette réponse. Fondamentalement, vous enregistrez ce fichier Microsoft.CodeAnalysis.dll auprès de GAC.

Impossible de charger le fichier ou l'assembly 'Microsoft.CodeAnalysis, version = 1.3.1.0, Culture = neutre, PublicKeyToken = 31bf3856ad364e35' ou l'une de ses dépendances

0
Dhrumil Bhankhar

J'ai eu ce problème aujourd'hui alors que j'effectuais une mise à niveau Umbraco v7.13.0; le simple fait de mettre à jour le package suivant a résolu mon problème. Il s'agit apparemment d'un problème courant avec des choses comme Umbraco upgrades .

Update-Package -Reinstall Microsoft.CodeAnalysis.CSharp
0
Nurhak Kaya