如何从命令行 运行 .NET Core 控制台应用程序

How to run .NET Core console application from the command line

我有一个 .NET Core 控制台应用程序并且 运行 dotnet publish。但是,我不知道如何从命令行 运行 应用程序。有什么提示吗?

如果它是依赖于框架的应用程序(默认),您 运行 它由 dotnet yourapp.dll

如果它是一个独立的应用程序,您 运行 它在 Windows 上使用 yourapp.exe,在 Unix 上使用 ./yourapp

有关两种应用类型之间差异的详细信息,请参阅有关 .NET 文档的 .NET Core Application Deployment 文章。

您也可以 运行 您的应用程序,就像任何其他控制台应用程序一样,但只能在发布之后。

假设您有一个名为 MyTestConsoleApp 的简单控制台应用程序。

打开包管理器控制台并运行以下命令:

dotnet publish -c Debug -r win10-x64 

-c标志意味着你想使用调试配置(在其他情况下你应该使用发布值)

-r 标志意味着您的应用程序将 运行 在具有 x64 架构的 Windows 平台上。

发布程序完成后,您将在 bin/Debug/publish 目录中看到 *.exe 文件。

现在您可以通过命令行工具调用它了。所以打开 CMD window(或终端)移动到你的 *.exe 文件所在的目录并写入下一个命令:

>> MyTestConsoleApp.exe argument-list

例如:

>> MyTestConsoleApp.exe --input some_text -r true

您可以非常轻松地创建一个 EXE(对于 Windows),而无需使用任何神秘的构建命令。您可以在 Visual Studio.

中完成
  1. 右键单击控制台应用程序项目并select 发布
  2. 将打开一个新页面(下面的屏幕截图)
  3. 点击配置...
  4. 然后将 Deployment Mode 更改为 Self-containedFramework dependent.NET Core 3.0 引入了单文件部署,即单个可执行文件。
  5. 如果您知道目标机器有 .NET Core 运行时,请使用 "framework dependent",因为它会生成较少的安装文件。
  6. 如果您现在在资源管理器中查看 bin 文件夹,您将找到 .exe 文件。
  7. 您必须部署 exe 以及任何支持的配置和 dll 文件。

使用 .NET Core 3.0,您可以使用 PublishSingleFile 属性:

将整个解决方案打包到单个文件可执行文件中
-p:PublishSingleFile=True

来源:Single-file executables

自包含版本的示例 OS X 可执行文件:

dotnet publish -c Release -r osx-x64 -p:PublishSingleFile=True --self-contained True

自包含调试示例 Linux 64 位可执行文件:

dotnet publish -c Debug -r linux-x64 -p:PublishSingleFile=True --self-contained True

Linux 构建独立于分发,我发现它们在 Ubuntu 18.10 (Cosmic Cuttlefish), CentOS 7.7, and Amazon Linux2 上工作。

独立的可执行文件包括 .NET 运行时,运行时不需要安装在目标机器上。已发布的可执行文件保存在:

<ProjectDir>/bin/<Release or Debug>/netcoreapp3.0/<target-os>/publish/ Linux、OS X 和

<ProjectDir>\bin\<Release or Debug>\netcoreapp3.0\<target-os>\publish\ Windows。

如果您的计算机上安装了 .NET Core SDK,您可以使用 CMD 运行 控制台 .NET Core 项目:

要使用 Windows 命令行 运行 控制台项目,请从您的目录中选择特定路径并键入以下命令:

dotnet run

在命令提示符中 运行 之前,确保“appsettings.json”与“appsettings.Development.json”具有相同的值。

在命令提示符下,一直转到 bin/debug/netcoreapp2.0 文件夹。然后 运行 "dotnet applicationname.dll"

转到...\bin\Debug\net5.0(“net5.0”也可以是“netcoreapp2.2”之类的东西,具体取决于您使用的框架。)

如图所示,单击 PowerShell window 打开它。

在 PowerShell 中键入 window:.\yourApp.exe

你不需要dotnet publish。只需确保在构建之前包含所有更改即可。