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?
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.
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é:
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
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
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.
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