.net core 如何从命令行运行.NET核心控制台应用程序
我有一个.NET核心控制台应用程序,并运行了.net core 如何从命令行运行.NET核心控制台应用程序,.net-core,command-line,console-application,.net Core,Command Line,Console Application,我有一个.NET核心控制台应用程序,并运行了dotnet publish。但是,我不知道如何从命令行运行应用程序。有什么提示吗?如果它是一个依赖于框架的应用程序(默认设置),您可以通过dotnetyourapp.dll运行它 如果它是一个独立的应用程序,您可以在Windows上使用yourapp.exe,在Unix上使用/yourapp运行它 有关这两种应用程序类型之间差异的更多信息,请参阅.Net Docs上的文章。您也可以像任何其他控制台应用程序一样运行应用程序,但只能在发布后运行 假设您有
dotnet publish
。但是,我不知道如何从命令行运行应用程序。有什么提示吗?如果它是一个依赖于框架的应用程序(默认设置),您可以通过dotnetyourapp.dll
运行它
如果它是一个独立的应用程序,您可以在Windows上使用yourapp.exe
,在Unix上使用/yourapp
运行它
有关这两种应用程序类型之间差异的更多信息,请参阅.Net Docs上的文章。您也可以像任何其他控制台应用程序一样运行应用程序,但只能在发布后运行 假设您有一个名为MyTestConsoleApp的简单控制台应用程序。 打开package manager控制台并运行以下命令:
dotnet publish -c Debug -r win10-x64
>> MyTestConsoleApp.exe argument-list
-c标志表示您希望使用调试配置(在其他情况下,您应该使用Release值)
-r标志意味着您的应用程序将在具有x64体系结构的Windows平台上运行
发布过程完成后,您将看到位于bin/Debug/publish目录中的*.exe文件
现在,您可以通过命令行工具调用它。因此,打开CMD窗口(或终端)移动到*.exe文件所在的目录,并写入下一个命令:
dotnet publish -c Debug -r win10-x64
>> MyTestConsoleApp.exe argument-list
例如:
>> MyTestConsoleApp.exe --input some_text -r true
您可以非常轻松地创建EXE(用于Windows),而无需使用任何神秘的构建命令。您可以在VisualStudio中正确地执行此操作
使用dotnetcore3.0,您可以使用
PublishSingleFile
属性将整个解决方案打包到单个文件可执行文件中
-p:PublishSingleFile=True
来源
自包含
,发布
OSX可执行文件的示例:
dotnet publish -c Release -r osx-x64 -p:PublishSingleFile=True --self-contained True
dotnet publish -c Debug -r linux-x64 -p:PublishSingleFile=True --self-contained True
自包含
,调试
Linux 64位可执行文件的示例:
dotnet publish -c Release -r osx-x64 -p:PublishSingleFile=True --self-contained True
dotnet publish -c Debug -r linux-x64 -p:PublishSingleFile=True --self-contained True
Linux构建独立于发行版,我发现它们在Ubuntu 18.10、CentOS 7.7和Amazon Linux 2上工作
自包含的可执行文件包括Dotnet运行时,运行时不需要安装在目标计算机上。已发布的可执行文件保存在以下位置:
/bin//netcoreapp3.0//publish/
在Linux、OSX和
\bin\\netcoreapp3.0\\publish\
在Windows上。如果计算机中安装了.net core SDK,则可以使用CMD运行控制台.net core项目:
要使用windows命令行运行console项目,请从目录中选择特定路径并键入以下命令
网络运行
在cmd提示符中运行之前,请确保“appsettings.json”的值与“appsettings.Development.json”的值相同
在命令提示下,一直转到bin/debug/netcoreapp2.0文件夹。然后运行“dotnet applicationname.dll”转到
..\bin\Debug\net5.0
(根据您使用的框架,net5.0也可以类似于“netcoreapp2.2”)
点击电源外壳打开电源外壳,如图所示
键入powershell:\yourApp.exe
您不需要dotnet publish,只需确保在构建它之前包含所有更改。我花了这么长时间才发现这一点,真是太神奇了。我正在尝试各种各样的“dotnet run”命令,等等。这是我在大量搜索中遇到的第一个地方,它提供了运行控制台应用程序的正确dotnet用法。为什么Microsoft使.NET Core对开发人员如此不友好?@GlenThomas如果您想运行正在开发的应用程序,可以使用
dotnet run
。还有,你在哪里找的?您希望从何处获得这些信息?对于使用较新的MSBuild csproj安装程序而不是旧的project.json文件的.NET核心项目,“dotnet run”似乎不再是这种情况。@GlenThomas这不是真的,它对新的csproj项目的作用与对project.json的作用相同。@GlenThomas,不确定这是否是您遇到的问题,但是,当您尝试使用dotnet run
时,请确保您位于项目目录,而不是解决方案目录中。这可能会有所帮助:是的。还有EXE-以及217个其他文件(api-ms-win-core-namedpipe-l1-1-0.dll等)。有没有办法把它打包成一个EXE?问得好@Elton。我不知道。好吧,你必须部署所有的DLL。我认为,如果它被配置为自包含的,那么所有这些DLL都必须在那里。如果您不想让它们出现,部署模式可能需要依赖于框架。您让我的星期五!您还可以将配置添加到csproj文件:true