Начиная с .NET 11 Preview 4 и Visual Studio 18.8, VSTest больше не будет тянуть
Newtonsoft.Json. Вместо него на .NET будет использоваться System.Text.Json, на .NET Framework будет`JSONite`.Почему
Все версии
Newtonsoft.Json ниже 13.0.0 теперь помечены как уязвимые на NuGet.org. Это часть более широкой работы по удалению Newtonsoft.Json из .NET SDK.Что не меняется
Формат сообщений VSTest остаётся прежним. Сериализация идентична независимо от используемой библиотеки. Старые тестовые хосты совместимы с обновлённой платформой и наоборот. Производительность сериализации не ухудшилась.
Кого затронет
Большинство проектов изменений не почувствуют. Проблемы возникнут в трёх случаях.
1. Ошибка сборки — если тестовый проект использует типы
Newtonsoft.Json (JObject, JsonConvert) без явной ссылки на пакет. Раньше пакет «протекал» через VSTest. Теперь нет.Решение — добавить зависимость:
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
2. Ошибка в рантайме — если пакет подключён с
<ExcludeAssets>runtime</ExcludeAssets> и проект рассчитывал на копию из VSTest. Тест упадёт с FileNotFoundException.Решение — убрать
<ExcludeAssets>runtime</ExcludeAssets>.3. Ошибка загрузки адаптера — если тестовый адаптер или data collector использует
Newtonsoft.Json без явной зависимости. Среди известных адаптеров таких случаев пока не обнаружено.Превью-пакеты уже доступны на NuGet как
Microsoft.TestPlatform.* версии 1.0.0-alpha-stj.➡️ Источник
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека шарписта
#async_news
