83 votes

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

Une mise à jour a eu lieu la nuit dernière et maintenant je me trouve dans l'impossibilité de faire un ctrl + '.' pour les suggestions de code dans VS 2015. Un message d'erreur s'affiche disant ce qui suit :

Impossible de charger le fichier ou l'assemblage 'Microsoft.CodeAnalysis, version= 1.3.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' ou l'une de ses dépendances. Le système ne trouve pas le fichier spécifié.

Je peux toujours construire et développer, mais ce sera vraiment ennuyeux sans cette fonctionnalité. Je l'admets, je m'adoucis !

Quelqu'un a-t-il une suggestion pour corriger ce bug ?

1 votes

Je reçois aussi ce message aujourd'hui... J'aimerais savoir ce qui l'a cassé ! Notre machine de construction a les mêmes versions VS/C# et son Ctrl+ "." fonctionne toujours bien. Nous n'avons jamais eu DotNetCompilerPlatform dans aucun des paquets NuGet de nos projets, donc je ne comprends pas pourquoi nous devons soudainement l'installer et mettre à jour toutes les configurations de construction de nos projets !

0 votes

Je viens d'essayer de charger le Microsoft.CodeDom.Providers.DotNetCompilerPlatform sur un autre projet qui ne l'avait pas initialement dans la solution et cela n'a pas fonctionné.

2 votes

Comme l'a souligné Vilhelm H. dans VS : Tools-> Nuget Package Manager -> Package Manager Console et ensuite Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform .

62voto

Vilhelm H. Points 1031

Comme indiqué par @CaptainAmerica, la solution consiste à mettre à jour l'assemblage CodeDom à partir de NuGet. Il faut indiquer comment faire cela dans Visual Studio. J'ai trouvé la solution ici :

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

En gros, dans le menu de Visual Studio, sélectionnez :

Tools-> Nuget Package Manager -> Package Manager Console

Dans la console qui apparaît au bas de Visual Studio, exécutez cette commande :

Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform

12 votes

Cela résout le problème, mais je ne comprends toujours pas pourquoi nous devons ajouter ce paquet. Jusqu'à aujourd'hui, Ctrl + '.' fonctionnait bien dans toutes nos solutions, et nous n'avions pas ce package listé dans aucune de leurs configurations NuGet. Une réparation de l'installation de VS 2015 n'a pas aidé non plus.

0 votes

Merci beaucoup ! Cela a marché. Merci tout particulièrement d'avoir fourni la solution commande par commande. Cela m'a évité de lire plus que nécessaire ;)

1 votes

Cela peut ou non fonctionner, mais cela semble être une mauvaise idée que, pour qu'Intellisense/CodeAnalysis fonctionne dans Visual Studio, les solutions individuelles aient besoin de ce paquet NuGet. La mise à jour 3 fonctionne.

35voto

Dhrumil Bhankhar Points 758

Si l'une des options ne fonctionne pas, voici le guide détaillé pour gérer ce scénario.....

Tout d'abord, la version est importante. Remarquez la version mentionnée dans l'erreur...

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.

Si vous voyez l'erreur ci-dessus, cela signifie qu'il n'est pas en mesure de trouver la version 1.3.1. Maintenant, veuillez créer un nouveau projet VS. Pas de préférences, il peut s'agir d'une simple application console. Maintenant, une fois que le modèle de projet est prêt, allez dans le gestionnaire de paquets et exécutez la commande suivante avec la version que vous avez spécifiée...

Install-Package Microsoft.CodeAnalysis -Version 1.3.1

Ceci installera tous les paquets. Laissez-le se terminer. Une fois que c'est fait. Nous n'avons plus du tout besoin de ce projet nouvellement créé. Vous pouvez le supprimer complètement. Sérieusement ! Vous pouvez le supprimer. Nous avons fait cela parce que nous voulions que ce paquet soit installé au niveau global de nuget. Lorsque vous installez quelque chose, nuget le stocke également au niveau global de votre machine. Le chemin sera quelque chose comme ceci...

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

Vous pouvez connaître votre chemin en suivant...

%USERPROFILE%\.nuget\packages

Maintenant, vous verrez que vous avez besoin de Microsoft.CodeAnalysis.dll dans le dossier suivant...

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

Veuillez noter que le chemin ci-dessus contient le numéro de version (1.3.1). Si votre version est différente, regardez dans le dossier de cette version.

Maintenant que vous avez la dll avec vous, tout ce que vous devez faire est d'ajouter cette dll au GAC. Pour cela, vous aurez besoin de GacUtil.exe

Ce fichier est déjà installé avec Visual Studio. Vous pouvez chercher "GacUtil" dans le lecteur C. Pour moi, il se trouve dans le chemin ci-dessous...

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

Exécutez maintenant l'invite de commande en tant qu'administrateur et naviguez dans le répertoire actuel jusqu'à votre chemin contenant GacUtil. Exécutez la commande ci-dessous pour installer cette dll dans le GAC.

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

En fait, il s'agit de fournir le chemin vers la dll que nous avons installée globalement. Un message s'affichera en cas d'installation réussie.

C'est tout ! Redémarrez maintenant votre Visual Studio et vous obtiendrez ce problème résolu.

3 votes

Cela a marché à merveille pour moi ! La seule considération que les autres réponses ne semblent pas mentionner est de faire cela dans un NOUVEAU projet. Sinon, vous ajoutez une tonne de déchets à votre solution et éventuellement au contrôle de la source.

1 votes

@GilesDMiddleton, Oui, très vrai ! C'est un point très important qui mérite d'être suivi. Microsoft.CodeAnalysis est vraiment un énorme paquet de dépendances et vous ne voulez en aucun cas qu'il soit installé sous votre projet de travail.

0 votes

Merci, ça marche. Dans ma situation, j'ai dû installer 2 dlls et redémarrer le PC pour que cela prenne effet.

29voto

shopOFF Points 304

J'ai eu le même problème avec Visual Studio 2015 Update 2, pour résoudre le problème de manière globale pour toutes les solutions, mettez à jour en Visual Studio 2015 Update 3 . Voici un lien : Télécharger ici

2 votes

Je change la réponse correcte en cette réponse car ma réponse originale ne corrigeait que la solution actuelle et pas une autre de mes solutions. À mon avis, cela corrige le problème et c'est la réponse que la plupart des gens voudront quand ils chercheront une solution à ce bogue. Merci shopOff !

0 votes

Update 3 10/10 fix. Je me demande quand cela a été introduit ? Ça a commencé à m'arriver tout d'un coup.

1 votes

Cela n'a pas fonctionné pour moi, alors que la solution stackoverflow.com/a/42560044/581285 a réglé le problème.

11voto

user3019291 Points 20

J'ai trouvé ceci page et en bas de la page sous "Compatibilité avec ASP.NET" il est dit que ASP.NET utilise le paquet nuget Microsoft.CodeDom.Providers.DotNetCompilerPlatform pour mettre à jour les assemblages Microsoft.CodeAnalysis. J'ai donc mis à jour le paquet DotNetCompilerPlatform de 1.0.0 à 1.0.3 et ça marche à nouveau ! Oui, la vie est de nouveau belle !

0 votes

J'ai le même problème. Pourriez-vous m'expliquer comment mettre à jour les assemblages Microsoft.CodeAnalysis ?

0 votes

@Marcello Lisez la réponse ci-dessous. Dans VS : Tools-> Nuget Package Manager -> Package Manager Console et ensuite Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform .

0 votes

Ok. Je l'ai fait et cela a résolu le problème, mais seulement pour la solution spécifique. Si j'ouvre une autre solution, le problème persiste.

9voto

Marcello Points 371

Pour résoudre ce problème pour toutes les solutions, j'ai dû installer l'ensemble Microsoft.CodeAnalysis.dll directement à la GAC - Global Assemblies Cache .

J'ai le fichier Microsoft.CodeAnalysis.dll de C:/Users/[utilisateur]/.nuget/packages/Microsoft.CodeAnalysis.Common/1.3.2/lib/portable-net45+win8/Microsoft.CodeAnalysis.dll .

Pour installer l'assemblage dans le GAC, j'ai utilisé un script PowerShell à partir de https://github.com/LTruijens/powershell-gac .

Enfin, j'ai réussi à installer l'assemblage dans le GAC avec la commande suivante de PowerShell :

Add-GacAssembly [myPath]\Microsoft.CodeAnalysis.dll

1 votes

Excellente idée, même si je ne l'ai pas essayée. Cela se produit probablement automatiquement lors de la mise à jour vers la mise à jour 3. Mais c'est une excellente solution intermédiaire entre le passage à la mise à jour 3 et l'intégration de cette fonctionnalité dans toutes les solutions.

0 votes

Le lien vers Add-GacAssembly est un lien vers la documentation, pas vers le script. Le projet lié ne semble pas, hilare, inclure de véritables scripts. Google sait où se trouve le script, mais tout ce qu'il fait, c'est imprimer une erreur indiquant que le script n'est pas signé numériquement.

0 votes

Quoi qu'il en soit, pour ceux qui n'ont pas un jour ou deux à consacrer à des batailles avec PowerShell, il y a gacutil dans l'invite de commande de VS Developer. Vous pouvez l'utiliser pour installer l'assemblage ci-dessus dans le GAC. Cela n'a pas résolu le problème pour moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X