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é.
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.
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\
.
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.
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
Suggérez d'utiliser Process Explorer
Fermeture et réouverture Visual Studio fonctionne à merveille!
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.
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.
Les types complexes dans un modèle peuvent également causer ce problème. Exemple: si vous avez la liste dans votre modèle.
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: