dotnet run 命令允许从源代码运行应用程序,这对于从命令行快速迭代开发非常有用。它依赖于 dotnet build 命令生成代码,任何生成需要的,比如要先执行还原,同样适用于 dotnet run

dotnet run 命令需要运行的项目是可执行类型的,也就是在项目文件中需要指定 <OutputType> 为 Exe。它的输出文件会写入到默认位置,即 bin/[configuration]/[framework],例如目标框架为 netcoreapp2.0 的应用程序运行 dotnet run ,输出的位置为 bin/Debug/netcoreapp2.0

dotnet run 基于项目上下文执行,它需要从 NuGet 缓存解析共享运行时之外的应用程序依赖项,即第三方依赖。因此不推荐在生产中使用 dotnet run 来运行应用程序,而是使用 dotnet publish 命令发布应用程序后部署。

选项

-h|--help

打印帮助信息。

-p|--project

指定要运行的项目。如果不指定,默认运行当前目录中的项目。

// 默认运行当前目录中的项目
dotnet run
// 指定要运行的项目
dotnet run -p app.csproj

--

界定选项和传递给程序的参数。

如果执行 dotnet run 将 --help 传递给运行的程序,执行下面的命令是做不到的。

dotnet run --help

这是查看 dotnet run 帮助的命令。此时,-- 就派上用场了。

dotnet run -- --help

当然,如果要传递的参数不是 dotnet run 的选项,不用 -- 也是可以的。

dotnet run -a 5

-c|--configuration {Debug|Release}

生成项目的配置。默认为 Debug。

dotnet run -c Release

-f|--framework <FRAMEWORK>

指定运行项目使用的目标框架。

如果项目文件中指定了多个框架,执行 dotnet run 命令必须指定 -f|--framework <FRAMEWORK> 选项确定针对特定的目标框架运行,否则会报错。

dotnet run -f netcoreapp2.0

--runtime <RUNTIME_IDENTIFIER>

指定目标运行时。

关于更多运行时标识符 (RID) 的内容,请参阅 14.1.2 节。

--launch-profile

启动应用程序时使用的启动配置名称,启动配置定义在 launchSettings.json 里。

关于更多启动配置的内容,请参阅 3.9 节。

--no-build

运行应用程序之前不生成项目。

--no-launch-profile

不使用 launchSettings.json 配置应用程序。

--no-restore

运行应用时不隐式调用还原。