-p option for
dotnet run is deprecated
-p is deprecated as an abbreviation for
--project, and using
-p generates a warning.
This warning comes from the CLI parser, so it won't generally cause failures when warnings are treated as errors. However, if your process wraps MSBuild or CI and checks for the text "Warning", the warning will appear in that check.
.NET SDK 6.0.100
In previous .NET versions,
Starting in .NET 6, passing
dotnet run results in a warning that it is deprecated and to use the full
--project option instead. Despite the warning,
-p is still a valid abbreviation for
Reason for change
We are deprecating
-p because of the close relationship
dotnet run has with
dotnet build and
dotnet publish. This breaking change is the first step in aligning abbreviations for these commands. For more information, see Spec for resolving '-p' in 'dotnet run'.
If you encounter the new warning, use
--project. If you have a project argument that includes an
= and you use the
-p abbreviation, the option will be interpreted as
Review any scripts that use
dotnet run where you might overlook the warning if
-p is used.
If you have any scripts that are using
dotnet run and process the output, you could encounter a break.
dotnet run typically doesn't output anything of its own if there are no errors, so you only get the output of the program that's being run. If you have a script or other program that wraps
dotnet run and parses the output, the warning would be unexpected text and may cause a failure.
Submit and view feedback for