NETSDK1206: найденные идентификаторы среды выполнения для конкретной версии или конкретного дистрибутива

NETSDK1206 указывает, что в проекте есть ресурсы для идентификаторов среды выполнения для конкретной версии или дистрибутива. В .NET 8 и более поздних версиях среда выполнения больше не учитывает определенные версии или дистрибутивные идентификаторы RID по умолчанию и будет находить ресурсы, относящиеся к RID, с помощью известного набора переносимых идентификаторов. Предупреждение выводит список затронутых идентификаторов и пакетов.

Во-первых, проверка для более новой версии всех затронутых пакетов, чтобы узнать, перемещены ли они в переносимые идентификаторы RID. Многие пакеты уже перемещены в переносимые идентификаторы в последних версиях. Если такая версия отсутствует, рекомендуется обратиться к авторам пакетов, чтобы запросить переключение пакета, чтобы использовать только переносимые идентификаторы.

Если вы знаете, что приложению не нужен указанный RID , например, он не предназначен для запуска на платформе, указанной RID, можно отключить предупреждение с помощью NoWarn свойства MSBuild. Например:

<PropertyGroup>
  <NoWarn>$(NoWarn);NETSDK1206</NoWarn>
</PropertyGroup>

Если приложению требуется указанный RID и затронутый пакет не имеет версии, которая использует переносимые идентификаторы RID, среда выполнения может быть настроена для разрешения ресурсов с помощью старого графа RID с определенными версиями и дистрибутивами идентификаторов. Обратите внимание, что старый граф RID больше не обновляется и существует только в качестве варианта обратной совместимости.

<ItemGroup>
  <RuntimeHostConfigurationOption Include="System.Runtime.Loader.UseRidGraph" Value="true" />
</ItemGroup>