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

我有一个。net核心控制台应用程序,并运行dotnet publish。但是,我不知道如何从命令行运行应用程序。有提示吗?

183204 次浏览

如果它是一个依赖于框架的应用程序(默认值),则通过dotnet yourapp.dll运行它。

如果它是一个自包含的应用程序,你在Windows上使用yourapp.exe运行它,在Unix上使用./yourapp运行它。

有关这两种应用程序类型区别的更多信息,请参阅。net文档上的.NET核心应用部署文章。

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

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

打开包管理器控制台,执行以下命令:

dotnet publish -c Debug -r win10-x64

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

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

当发布过程完成后,您将看到位于bin /调试/出版目录中的*.exe文件。

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

>> MyTestConsoleApp.exe argument-list

例如:

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

您可以很容易地创建EXE(用于Windows),而无需使用任何神秘的构建命令。你可以在Visual Studio中完成。

  1. 右键单击控制台应用程序项目并选择发布
  2. 将打开一个新页面(屏幕截图如下)
  3. 打击配置…
  4. 然后将< /强> < >强部署模式改为自包含的框架依赖. net Core 3.0引入了单文件部署,即单个可执行文件。
  5. 如果你知道目标机器有。net Core运行时,请使用“框架依赖”,因为它会生成更少的安装文件。
  6. 如果你现在在资源管理器中查看箱子文件夹,你会发现.exe文件。
  7. 您必须部署exe以及任何支持的配置和dll文件。

控制台应用程序发布

在。net Core 3.0中,你可以使用PublishSingleFile属性将整个解决方案打包成一个可执行文件:

-p:PublishSingleFile=True

来源:单文件可执行文件

一个独立的发布 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和亚马逊Linux 2上工作。

一个自包含的可执行文件包括。net运行时,而运行时不需要安装在目标计算机上。已发布的可执行文件保存在:

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

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

如果你的机器上安装了。net Core SDK,使用CMD可以运行控制台。net Core项目:

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

dotnet run

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

在命令提示符中,一直到bin /调试/ netcoreapp2.0文件夹。然后运行“dotnet applicationname.dll”;

...\bin\Debug\net5.0 ("net5.0"也可以是“netcoreapp2.2”之类的,这取决于你使用的框架。)

Enter image description here

如图所示,点击打开一个PowerShell窗口。

在PowerShell窗口中输入:.\yourApp.exe

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