Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Проекты, предназначенные для .NET 8 или более поздних версий, теперь используют меньший граф идентификатора переносимой среды выполнения (RID).
Предыдущее поведение
Пакет SDK для .NET использовал сложный граф RID для определения ресурсов при создании или публикации проекта.
Новое поведение
Начиная с .NET 8 пакет SDK для .NET использует меньший граф, состоящий только из переносимых ИДЕНТИФИКАТОРов, для проектов, предназначенных для .NET 8 или более поздней версии. Это означает, что пакет SDK по умолчанию не распознает определяемые версией или дистрибутивные идентификаторы RID. При сборке проекта может появиться следующая ошибка (или аналогичная):
ошибка NETSDK1083: указанный объект RuntimeIdentifier win10-x64 не распознается. См. https://aka.ms/netsdk1083 для получения дополнительной информации.
Представленная версия
.NET 8 RC 1
Тип разрушающего изменения
Это изменение является изменением поведения и может также повлиять на совместимость источников.
Причина изменения
Граф RID был дорогостоящим в обслуживании и понимании, требуя от самой платформы .NET быть адаптированной к различным дистрибутивам в чувствительной манере. Команда .NET и сообщество тратят значительное количество времени на обновление графа и перенос таких обновлений на предыдущие выпуски. Долгосрочная цель заключается в том, чтобы прекратить обновление графа RID, прекратить чтение и в конечном итоге удалить его. Это критическое изменение является шагом к этой цели.
Рекомендуемое действие
Используйте переносимые идентификаторы, например linux-<arch>
, linux-musl-<arch>
, osx-<arch>
и win-<arch>
, вместо идентификаторов, специфичных для версий или дистрибутивов, например ubuntu.16.04-<arch>
, osx.10.11-<arch>
и win10-<arch>
.
Если вы указываете RID с помощью свойства RuntimeIdentifier MSBuild в файле проекта (*.csproj, *.vbproj или *.fsproj), измените его соответствующим образом. Например, измените <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>