Ana*_*ria 10 .net linux .net-core
据我所知,在https://www.microsoft.com/net/learn/get-started/macos中,我们只能运行它:
$ dotnet run
Run Code Online (Sandbox Code Playgroud)
我需要创建一个我们从终端执行的控制台应用程序,如下所示:
$ ./my_console_app file_inputs.txt
Run Code Online (Sandbox Code Playgroud)
如何创建可以在这样的终端中运行的可执行文件?
mur*_*kos 20
要在Linux中创建独立控制台应用程序,您应该为您的dotnet核心应用程序使用自包含部署(SCD)发布模式:
这将生成捆绑目标框架的单个二进制文件,并且可以独立执行,无需任何额外的shell脚本或预先安装的dotnet运行时.
我建议使用官方的dotnet cli console
模板,然后--self-contained
通过指定目标运行时(例如:linux-x64
:)和框架将您的项目作为开关发布.
所以从基本console
模板开始:
dotnet new console -o myconsoleapp
cd myconsoleapp
Run Code Online (Sandbox Code Playgroud)
编辑program.cs
以根据您的业务逻辑处理您的输入文件或其他参数,例如:nano program.cs
并添加如下内容:
using System;
namespace myconsoleapp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello Linux!");
if (args.Length > 0) { Console.WriteLine("Input is: " + args[0]); }
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用dotnet run file_inputs.txt
它测试您的应用程序,它应该正确打印到控制台.
为了分发二进制文件和捆绑框架,您应该运行dotnet publish
:
dotnet publish -c release --self-contained --runtime linux-x64 --framework netcoreapp2.0
Run Code Online (Sandbox Code Playgroud)
然后,您可以通过以下方式分发您publish folder
的应用,然后执行您的应用:
./myconsoleapp file_inputs.txt
Run Code Online (Sandbox Code Playgroud)
这里有一篇关于在dotnet核心中创建独立Linux控制台应用程序的更详细的文章:
此处还可以在此处阅读有关其他可用Linux模板的更多内容publish
: