У меня есть решение с 2 проектами, один из которых - тестовый проект. Оба проекта нацелены на ядро dotnet 2.2:
<TargetFramework>netcoreapp2.2</TargetFramework>
Я использую Visual Studio 2019 (версия 16.1.1). Когда я нажимаю «Выполнить все» в тестовом проводнике, он выводит это предупреждение в окне вывода:
[5/28/2019 10:25:40 PM Informational] ------ Run test started ------
[5/28/2019 10:25:40 PM Warning] Test run will use DLL(s) built for framework .NETCoreApp,Version=v1.0 and platform X64. Following DLL(s) do not match framework/platform settings.
MyApp.UnitTests.dll is built for Framework 2.2 and Platform AnyCPU.
Go to http://go.microsoft.com/fwlink/?LinkID=236877&clcid=0x409 for more details on managing these settings.
[5/28/2019 10:25:41 PM Informational] ========== Run test finished: 3 run (0:00:01.167997) ==========
Тесты выполняются и успешно завершаются. Но мне интересно, как избавиться от этого предупреждения.
Я добавил файл .runsettings со следующими настройками, но все равно вижу то же предупреждение.
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<RunConfiguration>
<TargetFrameworkVersion>FrameworkCore10</TargetFrameworkVersion>
</RunConfiguration>
</RunSettings>
Изменение FrameworkCore10 на FrameworkCore22 (или netcoreapp2.2) вызывает огромное исключение. Лучшие несколько строк исключения:
[5/28/2019 10:41:30 PM Error] System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object.
at Microsoft.VisualStudio.TestWindow.Controller.RequestConfiguration.GroupTestContainersConfigByFrameworkAndArchitecture(IEnumerable`1 testContainersConfig, IXPathNavigable runSetting)
at Microsoft.VisualStudio.TestWindow.Controller.TestRunConfiguration.<GetAllCriteriaQueues>d__64.MoveNext()
at Microsoft.VisualStudio.TestWindow.Controller.TestRunRequest.<CreateRequests>d__23.MoveNext()
at Microsoft.VisualStudio.TestWindow.Controller.Request.<RunRequests>d__95.MoveNext()
--- End of inner exception stack trace ---
Обратите внимание, что те же проекты прекрасно работают в Visual Studio 2017, без необходимости какого-либо файла runsettings.