web-dev-qa-db-fra.com

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

Lorsque j'essaie d'exécuter la commande "update-database", j'obtiens cette exception:

Spécifiez l'indicateur '-Verbose' pour afficher les instructions SQL 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 = neutre, PublicKeyToken = b03f5f7f11d50a3a' ou l'une de ses dépendances. Le système ne peut pas trouver le fichier spécifié. Nom du fichier: 'Microsoft.Build.Framework, Version = 15.1.0.0, Culture = neutre, PublicKeyToken = b03f5f7f11d50a3a'

WRN: la journalisation de la liaison d'assemblage est désactivée. Pour activer la journalisation des défaillances de liaison avec Assembly, définissez la valeur de registre [HKLM\Software\Microsoft\Fusion! EnableLog] (DWORD) sur 1. Remarque: La journalisation des défaillances de liaison avec Assembly est pénalisée. 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 = neutre, PublicKeyToken = b03f5f7f11d50a3a' ou l'une de ses dépendances. Le système ne peut pas trouver le fichier spécifié.

56
Oleksii Vorochenko

Je crois que j'ai le même problème que vous (je n'ai pas enregistré le message d'erreur en entier, mais mon message d'erreur était

' Impossible de charger le fichier ou l'assembly' Microsoft.Build.Framework, version = 15.1.0.0, Culture = neutre, PublicKeyToken = b03f5f7f11d50a3a 'ou l'une de ses dépendances. Le système ne trouve pas 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, je ferme Visual Studio et le rouvre, puis réexécutez Update-Database.

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

66
Eightgate

La cause première de ce problème provient des chemins relatifs du fichier devenv.exe.config À Microsoft.Build.Framework.dll (Voir balises XML).

Certaines extensions Visual Studio modifient le répertoire en cours et rendent les chemins d'accès relatifs non valides.

Pour résoudre ce problème, 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\.

36
Renaud Bancel

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

Fondamentalement, installez le DLL (avec quelques liens)) dans le GAC (Global Assembly Cache) et le problème disparaîtra.

Suivez ces étapes:

1- Fermez toutes les instances en cours d'exécution de Visual Studio 2017

2- Lancez l'invite de commande du développeur Visual Studio 2017

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

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

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

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

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

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

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

4- Redémarrez Visual Studio 2017

Dans l’essentiel, le GAC aura (dans la plupart des cas) la priorité lorsque .NET essaiera de charger un DLL et l’exception FileNotFoundException disparaîtra sous la forme votre DLL sera maintenant résolu par le GAC.

Encore une fois, cela fonctionne pour moi et c'est simplement une solution de contournement, cela ne résoudra pas le problème principal mais au moins je n'ai pas à redémarrer VS lorsque j'essaie de travailler avec des migrations EF, et c'est suffisant pour moi.

28
Mr Lingua

Juste au cas où le redémarrage de Visual Studio ne fonctionnerait pas Allez dans Task Manager/Process Explorer et dans la compétence VBCSCompiler.exe

enter image description here

Suggérez d'utiliser Process Explorer

4
bitsmonkey

Fermeture et réouverture Visual Studio fonctionne à merveille!

2
Masoud Darvishian

Mon fichier manquant ou ma version d'assemblage est différent avec la question.

J'ai cette erreur lorsque j'ai essayé de publier mon projet ASP.net

Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

J'ai résolu le problème en installant Microsoft Build Tools 2015

Je pense que mon problème est causé par le projet de publication qui a été construit avec VS 2015 dans VS 2017. Hope peut aider les autres personnes ayant le même problème.

2
V-SHY

Nous avions ce problème et voici ce que nous devions faire dans notre cas:

Le problème était que nous avions un intercepteur de commande de base de données (IDbCommandInterceptor) configuré que appelé HttpRuntime.Cache["somekey"], et pour une raison quelconque, l'exécution des commandes de migration a échoué. Après avoir supprimé cette dépendance, toutes les commandes ont fonctionné parfaitement. Peut-être que HttpRuntime n'a pas été en mesure de trouver la dll du framework de construction?

Vérifiez donc l'intégralité de callstack lorsque les commandes de migration ne permettent pas de voir si vous rencontrez un problème similaire.

1
Øyvind Rask

Les types complexes dans un modèle peuvent également causer ce problème. Exemple: si vous avez la liste dans votre modèle.

0
harisdautovic

Merci à ceux qui ont déjà posté. Ma situation a été résolue par une combinaison de ce qui précède. J'ai eu plusieurs versions de Visual Studio: 2015, 2017, 2019. À un moment donné, la version de MSBUILD est passée de 15.1 à 15.9. J'ai résolu ce problème en mettant à jour le fichier C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\devenv.exe.config pour qu'il pointe vers la bibliothèque 15.9. Voici un exemple d'une des entrées:

0
Chilberto