Ошибка генерации: не удалось загрузить файл или сборку «Microsoft.Build.Framework, Version = 15.1.0.0» или одну из ее зависимостей.

Я получаю следующую ошибку, по-видимому, случайным образом, когда пытаюсь создать свои файлы .feature.

Иногда я изменяю или изменяю свой файл функций, и эта ошибка возникает из ниоткуда:

#error Generation error: Could not load file or assembly 'Microsoft.Build.Framework, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.

Я совершенно не знаю, как это решить - я пытался добавить ссылку на сборку, изменить версии SpecFlow/NUnit, но ничего не работает.

Сначала стирание моей копии проекта и извлечение ее из системы управления версиями работает, но затем это происходит снова.

Вот полный список моих установленных пакетов:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Microsoft.AspNet.WebApi.Client" version="5.2.2" targetFramework="net461" />
  <package id="Microsoft.AspNet.WebApi.Core" version="5.2.2" targetFramework="net461" />
  <package id="Microsoft.Azure.KeyVault.Core" version="1.0.0" targetFramework="net461" />
  <package id="Microsoft.Data.Edm" version="5.8.2" targetFramework="net461" />
  <package id="Microsoft.Data.OData" version="5.8.2" targetFramework="net461" />
  <package id="Microsoft.Data.Services.Client" version="5.8.2" targetFramework="net461" />
  <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
  <package id="NUnit" version="3.0.0" targetFramework="net461" />
  <package id="NUnit3TestAdapter" version="3.9.0" targetFramework="net461" />
  <package id="SpecFlow" version="2.2.1" targetFramework="net461" />
  <package id="SpecFlow.NUnit" version="2.2.1" targetFramework="net461" />
  <package id="System.ComponentModel.EventBasedAsync" version="4.0.11" targetFramework="net461" />
  <package id="System.Dynamic.Runtime" version="4.0.0" targetFramework="net461" />
  <package id="System.Linq.Queryable" version="4.0.0" targetFramework="net461" />
  <package id="System.Net.Requests" version="4.0.11" targetFramework="net461" />
  <package id="System.Spatial" version="5.8.2" targetFramework="net461" />
  <package id="WindowsAzure.Storage" version="8.6.0" targetFramework="net461" />
</packages>

Я использую Visual Studio Community 17 (15.5.2), .NET 4.7.02556 и версию расширения SpecFlow 2017.1.10.


person Aimee Jones    schedule 15.12.2017    source источник


Ответы (5)


Что иногда работает для меня, так это удаление папки packages из пути к решению, затем восстановление пакетов nuget в решении и повторное создание файлов функций.

Иногда этого недостаточно, и приходится еще и кеш визуальной студии удалять. Который находится: %LOCALAPPDATA%/Microsoft/Visual Studio/<your VS version>/ComponentModelCache

person Lars Celie    schedule 29.01.2018

Это известная проблема, которую мы пока не можем воспроизвести и исправить.

Ошибка GitHub: https://github.com/techtalk/SpecFlow/issues/857

person Andreas Willich    schedule 15.12.2017
comment
Должно быть воспроизведено путем загрузки последней копии Visual Studio 17 и установки перечисленных здесь пакетов. Вскоре после модификации тестов возникает проблема. - person Aimee Jones; 15.12.2017
comment
С мая я не мог воспроизвести его ни на одной из своих машин. И я получил проекты от пользователей, где это происходило регулярно. Известный обходной путь — использовать интеграцию с MSBuild. Пожалуйста, смотрите вопрос для получения дополнительной информации об этом. - person Andreas Willich; 15.12.2017
comment
Обходной путь указан на specflow.org/documentation/Generate-Tests-from-MsBuild. Что связано с проблемой, упомянутой выше. все, что вам нужно сделать, это добавить в свой csproj. первые шаги исправлены для меня, не нужно было делать дополнительные вещи - person P6345uk; 03.01.2018
comment
На данный момент я вернулся к использованию Specflow версии 1.9.0.77, и какое-то время у меня не было проблем! - person Aimee Jones; 04.01.2018

Исправление для меня состояло в том, чтобы удалить существующие файлы .feature.cs, а затем создать их заново.
Я использую Visual Studio 2017 15.5.1 и следующие версии SpecFlow:

SpecFlow Version:2.2.0.0
SpecFlow Generator Version:2.2.0.0

Следующая ветка github дала мне подсказки:
Поколение Visual Studio 2017 ошибка: не удалось загрузить файл или сборку «Microsoft.Build.Framework, Version=15.1.0.0».

person Ralph Willgoss    schedule 29.01.2018

Это проблема пакета Microsoft. Это решение сработало для меня. Проблема исчезла и теперь строится успешно.

На шаге Azure Build Pipeline > NuGet tool installer измените Version of NuGet.exe to install на более новую версию, например 5.4.0.

Проверьте последнюю ReleasedAndBlessed версию Nuget на странице https://dist.nuget.org/tools.json.

person Alfred Wallace    schedule 10.04.2020

Обновление последней версии Visual Studio решает эту проблему для меня.

ОС: macOS 10.15.1

person picolino    schedule 09.12.2019