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


-p параметр для dotnet run устарел

-p не рекомендуется использовать как сокращенное значение для --project, а при использовании -p создается предупреждение.

Это предупреждение исходит из средства синтаксического анализа CLI, поэтому обычно не вызывает сбоев при обработке предупреждений как ошибок. Однако если ваш процесс обрабатывает MSBuild или CI и проверяет наличие текста "Предупреждение", предупреждение появится в этой проверке.

Представленная версия

Пакет SDK для .NET 6.0.100

Старое поведение

В предыдущих версиях .NET -p означало --project.

Новое поведение

Начиная с .NET 6, передача -p в dotnet run приводит к предупреждению о том, что он устарел, а также указывает использовать полный вариант --project. Несмотря на предупреждение, -p по-прежнему является допустимым сокращением для --project.

Причина изменения

Мы нерекомендуем -p из-за тесной связи dotnet run с dotnet build и dotnet publish. Это существенное изменение, нарушающее обратную совместимость, является первым шагом в приведении аббревиатур к единому стандарту для этих команд. Дополнительные сведения см. Спецификацию по разрешению "-p" в "dotnet run".

Если вы столкнулись с новым предупреждением, используйте --project. Если у вас есть аргумент проекта, содержащий =, и вы используете аббревиацию -p, параметр будет интерпретирован как --property.

Просмотрите все скрипты, которые используют dotnet run, где вы можете упустить предупреждение, если используется -p.

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

Затронутые API

Не применимо

См. также