88 votes

Impossible de charger le fichier ou l'assembly 'Microsoft.Build.Framework' (VS 2017)

Lorsque j'essaie d'exécuter la commande "update-database", je reçois cette exception :

Spécifiez le drapeau '-Verbose' pour voir les instructions SQL qui sont appliquées à la base de données cible. System.IO.FileNotFoundException: Impossible de charger le fichier ou l'assembly 'Microsoft.Build.Framework, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' ou l'un de ses dépendances. Le système ne peut pas trouver le fichier spécifié. Nom de fichier : 'Microsoft.Build.Framework, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'

AVERTISSEMENT : L'enregistrement du lien d'assemblage est désactivé. Pour activer l'enregistrement des échecs de liaison d'assemblage, définissez la valeur de registre [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) sur 1. Remarque : Il y a une certaine pénalité de performance associée à l'enregistrement des échecs de liaison d'assemblage. Pour désactiver cette fonctionnalité, supprimez la valeur de registre [HKLM\Software\Microsoft\Fusion!EnableLog].

Impossible de charger le fichier ou l'assembly 'Microsoft.Build.Framework, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' ou l'une de ses dépendances. Le système ne peut pas trouver le fichier spécifié.

1 votes

En allemand, ce message d'erreur se lit comme suit : "Le fichier ou l'Assembly "Microsoft.Build.Framework, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" ou l'une de ses dépendances n'a pas été trouvé".

0 votes

Installer les outils de compilation Microsoft

95voto

Eightgate Points 723

Je crois avoir eu le même problème que vous. Je n'ai pas sauvegardé tout le message d'erreur, mais mon message d'erreur était

'Impossible de charger le fichier ou l'assembly 'Microsoft.Build.Framework, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' ou l'une de ses dépendances. Le système ne parvient pas à trouver le fichier spécifié.'

J'utilise Visual Studio 2017 et j'essayais de faire Update-Database après Add-Migration.

Pour résoudre le problème, j'ai fermé Visual Studio et je l'ai réouvert, puis j'ai relancé Update-Database à nouveau.

Cela peut ou non résoudre votre problème, mais je me suis dit que je posterais au cas où cela aiderait.

6 votes

Oui, il semblerait que "Eteindre et rallumer" soit la bonne solution dans ce cas.

16 votes

Cela fonctionne mais je ne le considère pas comme une réponse correcte. J'aimerais le corriger une fois pour toutes, sans avoir à redémarrer VS.

1 votes

Il se produit à chaque fois après une migration maintenant et cela nécessite un redémarrage complet du PC pour fonctionner.

42voto

La cause principale de ce problème provient des chemins relatifs dans le fichier devenv.exe.config vers Microsoft.Build.Framework.dll (voir balises xml).

Certaines extensions de Visual Studio modifient le répertoire actuel et rendent les chemins relatifs invalides.

Pour corriger cela, ouvrez ce fichier dans le répertoire C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\ et remplacez tous les ..\..\MSBuild\15.0\Bin\ par C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\.

0 votes

Je suis en train d'utiliser Visual Studio Professionnel, devrais-je faire de même. Je reçois cette erreur plusieurs fois.

0 votes

Je n'avais pas de dossier MSBuild sous l'IDE (version Community), j'ai copié mon MSBuild depuis "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community" et cela n'a rien corrigé.

1 votes

Je suis en train d'utiliser 2017 Pro et cela a résolu le problème pour moi. +1

38voto

Mr Lingua Points 404

J'ai trouvé une solution de contournement qui semble résoudre définitivement le problème, du moins sur mon environnement exécutant VS 2017 Professional 15.5.2 et Entity Framework 6.1.1.

Essentiellement, installez le DLL (avec quelques DLL associés) dans le GAC (Global Assembly Cache) et le problème disparaîtra.

Suivez ces étapes :

  1. Fermez toutes les instances en cours de Visual Studio 2017

  2. Exécutez l'invite de commandes Visual Studio 2017 pour les développeurs

  3. Tapez les commandes suivantes (remplacez Professional par votre édition, soit Enterprise ou Community, ou ajustez le chemin en conséquence) :

    gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Build.Framework.dll"

    gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Build.dll"

    gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Build.Engine.dll"

    gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Build.Conversion.Core.dll"

    gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Build.Tasks.Core.dll"

    gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Build.Utilities.Core.dll"

  4. Redémarrez Visual Studio 2017

Essentiellement, le GAC aura (dans la plupart des cas) la priorité lorsque .NET essaie de charger un DLL et l'exception FileNotFoundException disparaîtra car votre DLL sera maintenant résolue via le GAC.

Encore une fois, cela fonctionne pour moi et c'est simplement un contournement, cela ne résoudra pas le problème principal en lui-même mais je n'ai plus à redémarrer VS tout le temps lorsque j'essaie de travailler avec les migrations EF, et c'est suffisant pour moi.

1 votes

A fonctionné pour moi aussi. L'invite de commandes développeur de Visual Studio 2017 se trouve dans C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Visual Studio 2017\Visual Studio Tools et doit être exécutée en tant qu'administrateur.

2 votes

FYI - cela peut causer des problèmes lorsque Microsoft met à jour le produit et que les entrées GAC deviennent invalides (nouvelle version, ou changement de chemin .. pro vs entreprise, etc). Notamment un problème lors de la mise à niveau vers la dernière version 15.8.0 Si vos projets ne se chargent pas (en raison de l'utilisation de cette solution), consultez ici: developercommunity.visualstudio.com/content/problem/311136/…

4voto

ArjunShetty Points 748

Juste au cas où redémarrer Visual Studio ne fonctionne pas, allez dans le Gestionnaire des tâches / Process Explorer et arrêtez VBCSCompiler.exe

entrer la description de l'image ici

Suggérer d'utiliser Process Explorer

1 votes

Je suis en train de tester cette solution "Au cas où redémarrer Visual Studio ne fonctionnerait pas, allez dans le Gestionnaire de tâches/ Process Explorer et mettez fin à VBCSCompiler.exe" et cela fonctionne bien.

1voto

Masoud Darvishian Points 910

Fermer et réouvrir Visual Studio fonctionne comme un charme!

0 votes

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