Когда я пытаюсь запустить команду «update-database», я получаю следующее исключение:
Укажите флаг «-Verbose» для просмотра операторов SQL, применяемых к целевой базе данных. System.IO.FileNotFoundException: не удалось загрузить файл или сборку Microsoft.Build.Framework, Version = 15.1.0.0, Culture = нейтральный, PublicKeyToken = b03f5f7f11d50a3a или одну из его зависимостей. Система не может найти указанный файл. Имя файла: 'Microsoft.Build.Framework, Version = 15.1.0.0, Culture = нейтральный, PublicKeyToken = b03f5f7f11d50a3a'
WRN: ведение журнала привязки сборки отключено. Чтобы включить ведение журнала сбоев привязки сборок, установите для параметра реестра [HKLM \ Software \ Microsoft \ Fusion! EnableLog] (DWORD) значение 1. Примечание. С ведением журнала сбоев привязки сборок связано некоторое снижение производительности. Чтобы отключить эту функцию, удалите значение реестра [HKLM \ Software \ Microsoft \ Fusion! EnableLog].
Не удалось загрузить файл или сборку Microsoft.Build.Framework, Version = 15.1.0.0, Culture = нейтральный, PublicKeyToken = b03f5f7f11d50a3a или одну из его зависимостей. Система не может найти указанный файл.
источник
Ответы:
Я считаю, что у меня была такая же проблема, как и у вас. Я не сохранил все сообщение об ошибке, но мое сообщение об ошибке было
Я использую Visual Studio 2017 и пытаюсь сделать это
Update-Database
послеAdd-Migration
.Чтобы решить эту проблему, я закрыл Visual Studio и снова открыл ее , а затем снова запустил
Update-Database
.Это может решить или не решить вашу проблему, но я подумал, что опубликую на всякий случай, если это поможет.
источник
Наш сценарий локальной сборки использовал старую версию
nuget.exe
(4.7.1.5393
) для восстановления пакетов NuGet. Мы начали получать эту ошибку после обновления до версии Visual Studio 201916.5.0
. Обновление до последней версииnuget.exe
(5.4.0.6315
) устранило проблему для нас.nuget.exe
можно скачать здесь: https://www.nuget.org/downloads .источник
NuGetToolInstaller@0
доNuGetToolInstaller@1
, даже без указания более новой версии. Не уверен, однако, устраняет ли это основную причину проблемы или исправление - это всего лишь побочный эффект очистки локального кеша.Основная причина этой проблемы связана с относительными путями в
devenv.exe.config
файле кMicrosoft.Build.Framework.dll
(см. Теги xml).Некоторые расширения Visual Studio изменяют текущий каталог и делают относительные пути недействительными.
Чтобы исправить это, откройте этот файл в
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\
каталоге. и заменить все..\..\MSBuild\15.0\Bin\
наC:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\
.источник
Я нашел обходной путь, который, похоже, решает проблему навсегда, по крайней мере, в моей среде с VS 2017 Professional 15.5.2 и Entity Framework 6.1.1.
По сути, установите DLL (с несколькими связанными) в GAC (Global Assembly Cache), и проблема исчезнет.
Следуй этим шагам:
Закройте все запущенные экземпляры Visual Studio 2017.
Запустите командную строку разработчика Visual Studio 2017.
Введите следующие команды (замените Professional на свою версию, Enterprise или Community, или измените путь соответствующим образом):
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"
По сути, GAC будет (в большинстве случаев) иметь приоритет, когда .NET пытается загрузить DLL, и исключение FileNotFoundException исчезнет, поскольку ваша DLL теперь будет разрешена через GAC.
Опять же, это работает для меня, и это просто обходной путь, он не решит саму основную проблему, но, по крайней мере, мне не нужно постоянно перезапускать VS при попытке работать с миграциями EF, и этого достаточно для меня.
источник
Это сработало для меня - похоже, проблема не в поддержке, начиная с 2020 года.
На шаге
Azure Build Pipeline
>NuGet tool installer
изменитеVersion of NuGet.exe to install
на более новую версию, например5.4.0
. Проверяйте версии на https://dist.nuget.org/tools.json .Проблема исчезла и теперь успешно строится.
источник
Мой отсутствующий файл или версия сборки отличается от вопроса.
У меня возникает эта ошибка, когда я пытался опубликовать свой проект ASP.net
Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
Решил проблему установкой Microsoft Build Tools 2015
Я думаю, что моя проблема вызвана тем, что я публикую проект, который был построен с VS 2015 в VS 2017. Надеюсь, что может помочь другим, у которых есть такая же проблема.
источник
На всякий случай перезапуск Visual Studio не работает Зайдите в Диспетчер задач / Обозреватель процессов и скилл VBCSCompiler.exe
Предложить использовать Process Explorer
источник
Закрытие и повторное открытие Visual Studio работает как шарм!
источник
В моем случае что-то (возможно, NuGet-Update) действительно добавило AssemblyBinding в файл web.config:
<dependentAssembly> <assemblyIdentity name="Microsoft.Build.Framework" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-15.1.0.0" newVersion="15.1.0.0" /> </dependentAssembly>
После удаления этой зависимой Assemby-Entry я мог снова опубликовать проект.
источник
Это сработало для меня: ошибка возникает, когда я выполняю команду восстановления nuget. Nuget версии 4.6.2. У меня есть два способа решить эту проблему.
Используйте Nuget 4.8.2 и выше. gacutil / i "C: \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ Professional \ MSBuild \ Current \ Bin \ Microsoft.Build.Framework.dll
источник
У нас была эта проблема, и вот что нам нужно было сделать в нашем случае:
Проблема заключалась в том, что у нас был
(IDbCommandInterceptor)
настроен перехватчик команд базы данных, который называетсяHttpRuntime.Cache["somekey"
], и по какой-то причине команды миграции не выполнялись из-за этого. После удаления этой зависимости все команды работали безупречно. Может,HttpRuntime
не смогли найти dll Build Framework?Поэтому проверяйте весь стек вызовов, когда команды миграции не могут увидеть, есть ли у вас аналогичная проблема.
источник
Я столкнулся с той же проблемой при обновлении компонентов XCode / Mono в macOS.
Решение - обновить Visual Studio для Mac до последней версии.
Я думаю, что эта проблема связана с использованием новых инструментов MSBuild из пакета .NET Core 3.0, который установлен с новой версией XCode / Mono.
источник
Спасибо тем, кто уже разместил. Моя ситуация была решена комбинацией вышеуказанного. У меня было несколько версий Visual Studio: 2015, 2017, 2019. В какой-то момент версия MSBUILD перешла с 15.1 на 15.9, и я решил эту проблему, обновив
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\devenv.exe.config
файл, указав на библиотеку 15.9. Вот пример одной из записей:<dependentAssembly> <assemblyIdentity name="Microsoft.Build.Utilities.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/> <bindingRedirect oldVersion="2.0.0.0-99.0.0.0" newVersion="15.9.0.0"/> <codeBase version="15.9.0.0" href="..\..\MSBuild\15.0\Bin\Microsoft.Build.Utilities.Core.dll" /> </dependentAssembly>
источник
Использование Visual Studio 2019 Community edition. Я пробовал другие решения без особого успеха, но после очистки кеша NuGet проблема, похоже, была решена.
источник