Не удалось загрузить файл или сборку 'Microsoft.VisualStudio.TestPlatform.ObjectModel, Version=11.0.0.0'

Я использую MSTest.TestAdapter и MSTest.TestFramework версии 1.2.0 для своих тестов модульных тестов MS. На моем локальном компьютере (Visual Studio 2017) тесты работают отлично, но на нашем сервере сборки мы получаем следующее сообщение:

Не удалось загрузить файл или сборку 'Microsoft.VisualStudio.TestPlatform.ObjectModel, версия =11.0.0.0, культура = нейтральная, PublicKeyToken=b03f5f7f11d50a3a' или одна из ее зависимостей. Система не может найти указанный файл.

Затем я проверил ссылку на эту сборку с помощью ildasm, и это действительно версия 11.0.0.0 (см. Ниже).

Однако я не могу найти v11 этой сборки, в Интернете есть только версия v14 для nuget: https://www.nuget.org/packages/Microsoft.VisualStudio.TestPlatform.ObjectModel/

Я также ищу на своей машине, и я не могу найти v11.

Итак, мой вопрос, почему тесты запускаются на моей машине, а не на сервере сборки?

Я пробовал сборку, но безуспешно.

8 ответов

Требуемый пакет NuGet - Microsoft.TestPlatform.ObjectModel, созданный Microsoft, а не пакет Microsoft.VisualStudio.TestPlatform.ObjectModel, созданный Christopher.Haws.

https://www.nuget.org/packages/microsoft.testplatform.objectmodel/

Пакет Microsoft содержит сборки Microsoft.VisualStudio.TestPlatform.ObjectModel, несмотря на то, что он так не назван. Я получал ту же ошибку, и когда я установил v11 пакета Microsoft, он исправил сборку на сервере сборки для меня.

Та же проблема, я смог установить последнюю версию:

Install-Package Microsoft.TestPlatform.ObjectModel -Version 15.8.0

Затем добавьте перенаправление привязки в тестовые проекты app.config:

    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.VisualStudio.TestPlatform.ObjectModel" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
                <bindingRedirect oldVersion="11.0.0.0-14.0.0.0" newVersion="15.0.0.0" />
            </dependentAssembly>
        </assemblyBinding>
    </runtime>

Другие обходные рекомендуется здесь

Не отражайте типы из сборки Microsoft.VisualStudio.TestPlatform.ObjectModel. ИЛИ Понижение версии Microsoft.NET.Test.Sdk до версии 15.3.0.

Вероятно, второй вариант вам не подходит, поскольку вы используете.NET framework, а не.NET core.

Дополнительная информация:

В моем случае после обновления с .NET 5 до 7 не удалось загрузить

Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

Решение состоит в том, чтобы напрямую ссылатьсяMSTest.TestFrameworkв тестовом проекте. Поскольку я временно ссылался на него через проект библиотеки классов netstandard2.0.

      <PackageReference Include="MSTest.TestFramework" Version="x.x.x" />

версия=3.0.02 на момент написания

В окне вывода теста у меня были такие ошибки…

[MSTest][Discovery][C:\Repos\Flomaster\bin\Debug\ApiTest.UnitMaintenance.dll] Failed to discover tests from assembly C:\Repos\Flomaster\bin\Debug\ApiTest.UnitMaintenance.dll. Reason:Type 'Microsoft.VisualStudio.TestPlatform.ObjectModel.Trait' in Assembly 'Microsoft.VisualStudio.TestPlatform.ObjectModel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable.

Мне удалось заставить моих тестовых бегунов работать, очистив все мои obj а также bin\debug папки, но он вернулся, поэтому я посмотрел немного глубже и обнаружил, что просто искал Microsoft.VisualStudio.TestPlatform.ObjectModel.dll и удаления любых совпадающих файлов было достаточно, чтобы запустить тестовый запуск

После того, как мы снова столкнулись с той же проблемой в другом проекте, мы снова посмотрели на нее и нашли решение.

Install-Package Microsoft.TestPlatform.ObjectModel -Version 11.0.0

Но этого было недостаточно, чтобы убедиться, что сборка собрана сервером сборки, мы добавили ее в качестве элемента развертывания в базовый тестовый класс;

[DeploymentItem("Microsoft.VisualStudio.TestPlatform.ObjectModel.dll")]

И теперь сервер сборки снова начинает модульные тесты:-)

Grtz

Та же проблема. Решите, включив локаторы адаптеров в файлы .proj:

      <PackageReference Include="MSTest.TestAdapter" Version="2.2.10" />
<PackageReference Include="MSTest.TestFramework" Version="2.2.10" />

Столкнулся с той же ошибкой после того, как по ошибке добавил пакет NuGet для NUnit 3.0 в несколько проектов в решении, а затем удалил его.

Ссылка не была удалена полностью. Мне пришлось открыть каждый файл.csproj вручную и удалить все ссылки на ранее удаленный пакет NuGet. После очистки и перестройки ошибка ушла.

Другие вопросы по тегам