我有一个。net核心控制台应用程序,并运行dotnet publish。但是,我不知道如何从命令行运行应用程序。有提示吗?
dotnet publish
如果它是一个依赖于框架的应用程序(默认值),则通过dotnet yourapp.dll运行它。
dotnet yourapp.dll
如果它是一个自包含的应用程序,你在Windows上使用yourapp.exe运行它,在Unix上使用./yourapp运行它。
yourapp.exe
./yourapp
有关这两种应用程序类型区别的更多信息,请参阅。net文档上的.NET核心应用部署文章。
您也可以像运行任何其他控制台应用程序一样运行您的应用程序,但必须在发布之后。
让我们假设您有一个名为MyTestConsoleApp的简单控制台应用程序。
打开包管理器控制台,执行以下命令:
dotnet publish -c Debug -r win10-x64
-c标志意味着你想使用调试配置(在其他情况下,你应该使用Release值)
-c
-r标志意味着您的应用程序将运行在具有x64架构的Windows平台上。
-r
当发布过程完成后,您将看到位于bin /调试/出版目录中的*.exe文件。
现在您可以通过命令行工具调用它。所以打开CMD窗口(或终端)移动到您的*.exe文件所在的目录,并编写下一个命令:
>> MyTestConsoleApp.exe argument-list
例如:
>> MyTestConsoleApp.exe --input some_text -r true
您可以很容易地创建EXE(用于Windows),而无需使用任何神秘的构建命令。你可以在Visual Studio中完成。
在。net Core 3.0中,你可以使用PublishSingleFile属性将整个解决方案打包成一个可执行文件:
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和
<ProjectDir>/bin/<Release or Debug>/netcoreapp3.0/<target-os>/publish/
Windows上的<ProjectDir>\bin\<Release or Debug>\netcoreapp3.0\<target-os>\publish\。
<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”之类的,这取决于你使用的框架。)
...\bin\Debug\net5.0
如图所示,点击打开一个PowerShell窗口。
在PowerShell窗口中输入:.\yourApp.exe
.\yourApp.exe
你不需要dotnet publish。只是要确保在构建之前包含所有更改。