Как мне избавиться от ошибки "Ограничение API UnitTestFramework.dll уже загружено"?

Время от времени появляется следующее сообщение:

C:\Program Files\MSBuild\Microsoft\VisualStudio\v9.0\TeamTest\Microsoft.TeamTest.targets(14,5): error : API restriction: The assembly 'file:///C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll' has already loaded from a different location. It cannot be loaded from a new location within the same appdomain.

Как мне избавиться от него?

Ответы

Ответ 1

  • Отредактируйте файл .csproj
  • Удалите процессорArchitecture = MSIL в конце ссылки UnitTestFramework.

Изменить:

<reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />

в

<reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  • Перезапустить Visual Studio

Ответ 2

Если вы получаете эту ошибку при попытке выполнить тесты на своем сервере сборки TFS, вам может потребоваться изменить шаблон, который использует определение построения TFS, для поиска тестовых сборок. Этот пост описывает проблему и решение. В основном TFS находит одну и ту же тестовую сборку в двух разных папках и пытается включить ее дважды. Чтобы исправить это:

  • Откройте Team Explorer
  • Разверните дерево, пока не увидите сборки для своего проекта.
  • Выберите интересующую конструкцию
  • Щелкните правой кнопкой мыши > Изменить определение сборки
  • Нажмите "Обработка" на боковой панели слева.
  • Разверните '2. Basic ' > Автоматизированные тесты
  • Нажмите "Изменить"
  • Измените спецификацию файла тестовой сборки, чтобы удалить соответствующую папку в шаблоне. Например. изменить ****\test.dll ** на * test *.dll

Удалив папку из шаблона соответствия (т.е. \), она будет включать только тестовую сборку один раз, даже если она находит ее в двух разных папках.