Поделиться через


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

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

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

Если вы знаете, что приложение на самом деле не требует указанного RID , например, оно не предназначено для запуска на платформе, указанной в RID, можно переключиться на использование более общего RID. Например, измените <RuntimeIdentifier>win10-x64</RuntimeIdentifier> на <RuntimeIdentifier>win-x64</RuntimeIdentifier>, файл проекта:

<PropertyGroup>
  ...
  <RuntimeIdentifier>win-x64</RuntimeIdentifier>
</PropertyGroup>

Если в качестве аргумента командной строки указать RID, сделайте аналогичное изменение. Например, вместо dotnet publish --framework net8.0 --runtime win10-x64этого используйте команду dotnet publish --framework net8.0 --runtime win-x64.

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

<PropertyGroup>
  <UseRidGraph>true</UseRidGraph>
</PropertyGroup>