Visual Studio продолжает использовать UnitTestFramework 10.0.0.0
У меня есть решение с несколькими проектами. Один из проектов включает дополнительные методы Assert для модульного тестирования. Это ссылки Microsoft.VisualStudio.QualityTools.UnitTestFramework 10.1.0.0
, Он также включает в себя другие тестовые проекты, которые ссылаются на UnitTestFramework Microsoft и мой проект с дополнительными методами assert.
Всякий раз, когда я перезагружаю Visual Studio и компилирую, я получаю следующее предупреждение:
Обнаружены конфликты между разными версиями одной и той же зависимой сборки.
Я попытался изменить все ссылки на UnitTestFramework на 10.1.0.0, но после перезапуска Visual Studio снова устанавливает их на 10.0.0.0. Я даже пытался изменить файл проекта вне Visual Studio, но после открытия проекта в Visual Studio ссылки снова показывают старую версию в обозревателе решений. При закрытии Visual Studio без внесения каких-либо изменений в файл он спрашивает, сохранять ли изменения в файлах проекта.
Как запретить Visual Studio изменять версию моего ссылочного UnitTestFramework в моих проектах?
1 ответ
Была такая же проблема. Один из наших разработчиков реорганизовал сборки, и его VS по неизвестной причине изменил это:
<Choose>
<When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
</ItemGroup>
</When>
<Otherwise>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework" />
</ItemGroup>
</Otherwise>
</Choose>
в это:
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
<Choose>
<When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
</ItemGroup>
</When>
<Otherwise />
</Choose>
Первая строка которого постоянно менялась в системе всех остальных (те же симптомы, что и у вас).
Так как мы все равно не планируем поддерживать 3.5, я исправил это, убрав раздел "Выбор" и упростив его до:
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework" />
(полностью удалив конкретную версию из ссылки)
В моем случае в VS2017+Resharper я удалил ссылку на v 10.0.0.0 и повторно добавил ссылку на 10.1.0.0. Простое переназначение ссылки в браузере ссылок не помогло, и, как ни странно, не вернули изменения в моем файле Tests.csproj в системе контроля версий.