我有一个.NET Core控制台应用并运行dotnet publish
。但是,我无法弄清楚如何从命令行运行应用程序。任何提示?
答案 0 :(得分:179)
如果它是与框架相关的应用程序(默认设置),则按dotnet yourapp.dll
运行。
如果它是一个自包含的应用程序,则在Windows上使用yourapp.exe
并在Unix上使用./yourapp
运行它。
有关两种应用类型之间差异的详细信息,请参阅有关.Net文档的.NET Core Application Deployment文章。
答案 1 :(得分:20)
您可以非常轻松地创建EXE(对于Windows),而无需使用任何隐秘的生成命令。您可以在Visual Studio中直接完成此操作。
答案 2 :(得分:11)
您还可以像其他任何控制台应用程序一样运行您的应用程序,但只能在发布后运行。
让我们假设您有一个名为MyTestConsoleApp的简单控制台应用程序。 打开程序包管理器控制台并运行以下命令:
dotnet publish -c Debug -r win10-x64
-c标志意味着您要使用调试配置(在其他情况下,您应该使用Release值) -r标志表示您的应用程序将在具有x64体系结构的Windows平台上运行。
完成发布过程后,您将看到bin.Debug / publish目录中的* .exe文件。
现在您可以通过命令行工具调用它。因此,打开CMD窗口(或终端),移至* .exe文件所在的目录,并编写下一个命令:
>> MyTestConsoleApp.exe argument-list
例如:
>> MyTestConsoleApp.exe --input some_text -r true
答案 3 :(得分:2)
使用dotnetcore3.0,您可以使用PublishSingleFile
属性将整个解决方案打包为一个文件可执行文件
-p:PublishSingleFile=True
Self Contained
,Release
OSX可执行文件的示例:
dotnet publish -c Release -r osx-x64 -p:PublishSingleFile=True --self-contained True
Self Contained
,Debug
Linux 64位可执行文件的示例:
dotnet publish -c Debug -r linux-x64 -p:PublishSingleFile=True --self-contained True
Linux构建独立于发行版,我发现它们可以在Ubuntu 18.10,CentOS 7.7和Amazon Linux 2上运行。
自包含的可执行文件包括Dotnet Runtime,并且不需要在目标计算机上安装Runtime。已发布的可执行文件保存在以下位置:
<ProjectDir>/bin/<Release or Debug>/netcoreapp3.0/<target-os>/publish/
在Linux,OSX和
<ProjectDir>\bin\<Release or Debug>\netcoreapp3.0\<target-os>\publish\
在Windows上。
答案 4 :(得分:0)
如果您的计算机中安装了.net core SDK,则可以使用CMD运行控制台.net core项目:
要使用Windows命令行运行控制台项目,请从目录中选择特定路径,然后在下面的命令中键入以下内容
dotnet运行
答案 5 :(得分:0)
在cmd提示符下运行之前,请确保“ appsettings.json”具有与“ appsettings.Development.json”相同的值。
在命令提示符下,一直转到bin / debug / netcoreapp2.0文件夹。然后运行“ dotnet applicationname.dll”
答案 6 :(得分:0)