Microsoft Fakes: Team Build выдает исключение «Файл ввода-вывода не найден»

Я использую Microsoft Fakes для модульного тестирования. На моей локальной машине разработки я могу создать поддельную сборку библиотеки классов, и все работает нормально. Но при регистрации командная сборка на сервере сборки выдает «System.IO.FileLoadException: не удалось загрузить файл или сборку «Business.DataAccess.Core, версия = 19.0.0.9999, культура = нейтральная, PublicKeyToken = 925fe695533b6fca». или одна из ее зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)"

На моей локальной машине разработки версия Business.DataAccess.Core.dll — 19.0.0.9999, но на сервере сборки она получит правильный номер версии, например 19.0.0.1250.

XML-файл Business.DataAccess.Core.fakes выглядит следующим образом. Я удалил тег версии.

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/">
  <Assembly Name="Business.DataAccess.Core" />
</Fakes>

Я пробовал как зафиксировать папку FakeAssemblies, так и не зафиксировать ее. Оба раза не работает. Мое предположение заключалось в том, что поддельные сборки будут создаваться во время компиляции. Но это не работает.

Как я могу получить сборку команды для запуска моих модульных тестов с помощью Microsoft Fakes.

Когда я подделываю только EntityFramework.dll и фиксирую поддельные сборки, это работает. Это доказывает, что наш билд-сервер оснащен тестирующими подделками MS. На сервере сборки установлена ​​​​конечная версия VS 2013.

Очень признателен!!!


person sofuser    schedule 23.11.2015    source источник


Ответы (1)


Проблема заключалась в том, что «Business.DataAccess.Core.dll» получал новую версию на сервере сборки. Итак, чтобы решить эту проблему, удалил файл «GlobalAssemblyInfo.cs» из проекта, а затем в «AssemblyInfo.cs» добавил версию.

Мне также пришлось зарегистрировать папку FakeAssemblies с поддельной сборкой, чтобы это сработало.

person sofuser    schedule 25.11.2015