Появление предупреждения для RuntimeIdentifier, если не указана автономность
Если в файле проекта указан атрибут RuntimeIdentifier
или параметр -r
со значением dotnet
, то пакет SDK для .NET по умолчанию настраивает сборку, публикацию и выходные данные запуска так, чтобы получить автономное приложение. По умолчанию, если атрибут RuntimeIdentifier
не указан, создается зависящее от платформы приложение. Это изменение вводит новое предупреждение NETSDK1179, которое появляется при наличии RuntimeIdentifier
без указания, является ли приложение автономным.
Представленные версии
.NET 6 RC 1
Прежнее поведение
В предыдущих версиях при наличии RuntimeIdentifier
без дополнительных запросов автоматически изменялся режим сборки: автономное приложение вместо зависящего от платформы.
Новое поведение
В .NET 6 при наличии RuntimeIdentifier
без указания того, является ли приложение автономным, вы получите следующее предупреждение:
warning NETSDK1179: One of '--self-contained' or '--no-self-contained' options are required when '--runtime' is used. (предупреждение NETSDK1179: при использовании "--runtime" требуется параметр "--self-contained" или "--no-self-contained").
Например, для следующей команды будет выдано такое предупреждение:
dotnet publish -r win-x86
Категория изменения
Это изменение может повлиять на совместимость исходного кода.
Причина изменения
По умолчанию, если атрибут RuntimeIdentifier
не указан, создается зависящее от платформы приложение. Такое поведение по умолчанию вызывало путаницу для многих клиентов. Цели добавления предупреждения:
- предупредить клиентов о том, что теперь по умолчанию компилируется зависящее от платформы приложение;
- приучить клиентов явным образом выбирать тип для приложения, которое они хотят собрать;
- подготовить клиентов к возможному изменению поведения (сборка зависящего от платформы приложения) в .NET 7.
Рекомендуемое действие
- Укажите логическое значение в файле проекта.
SelfContained
- Любо добавьте в команду Build или Publish атрибут
--self-contained
с нужным значением.
Затронутые API
Н/П