.core 控制台应用程序_如何使用.NET Core构建跨平台的控制台应用程序

.core 控制台应用程序

尽管.NET传统上一直是仅Windows的封闭源专有平台,但那些日子即将结束。 新的.NET Core平台已在这里,它是开源跨平台的。 现在,您可以在任何平台上编写一次C#/。NET代码,然后在Windows,Linux和macOS上运行它。

这个新的.NET平台是在GitHub上公开构建的,主要使用MIT和Apache许可证,甚至接受社区的捐助。 这个新平台是围绕以前开放源代码的Roslyn编译器 (.NET Compiler Platform)重新设计的,并且不与Windows或Visual Studio捆绑在一起,从而使开发人员可以在任何IDE中的任何系统上工作,并在任何服务器或平台上运行其应用。

为了演示这个新平台,让我们构建一个超级简单的控制台应用程序,使用新的dotnet命令行界面(CLI)在Windows和Linux上运行。 首先,您需要安装.NET Core(包括dotnet CLI工具)。 Microsoft在其在线文档中为大多数平台(包括各种发行版)提供了完整的文档

如果您不想在本地安装.NET Core,则microsoft / dotnet:latest Docker映像已预装有所有最新工具和SDK。

1.创建我们的新应用

.NET Core瞬息万变。 这些说明适用于撰写本文时的最新版本。

首先,我们可以使用dotnet new console创建一个新的控制台应用程序。 这将自动创建一个以当前目录命名的Program.cs和一个.csproj (我的名字app.csproj )。

dotnet new

为了证明这是可行的 ,请尝试运行dotnet restore ,它将还原运行应用程序所需的所有软件包。 完成之后,运行dotnet run ,您应该会看到最重要的Hello World! 出现在您的控制台中。

dotnet restore run

2.向我们的应用程序添加逻辑

在您喜欢的文本编辑器中打开Program.cs ,并替换读取Console.WriteLine(“ Hello World!”);的行。 与下面的行。 由于.NET Core未与Visual Studio耦合,因此您可以使用任何喜欢的IDE或文本编辑器,甚至可以使用vi

Console.WriteLine($"Hello {System.Environment.GetEnvironmentVariable("USER")}! I'm {System.Environment.MachineName} and I'm talking to you from {System.IO.Directory.GetCurrentDirectory()}");

对于不熟悉C#和.NET的用户,此代码实质上是使用当前环境中的信息来打印经典Hello World应用程序的更详细版本。 请注意,这里也没有特定于平台的代码。

3.运行您的新应用

如果现在运行dotnet build ,则将.dll和其他文件添加到./bin/Debug文件夹中。 您已经编写了一个跨平台的控制台应用程序。 将这些文件复制到运行.NET Core的另一台计算机上,甚至是Linux或OS X,并运行dotnet ./path/to/your/app.dll ,您应该会看到与以前相同的输出; 但是,您仍在使用本地.NET运行时来执行此操作。 幸运的是,.NET Core包含在独立程序包中生成和发布本机二进制文件的功能,因此您的目标系统(或用户)甚至不需要安装.NET即可运行您的应用程序。

4.为其他平台做准备

要准备跨平台应用程序,我们必须告诉.NET Core SDK要为其构建哪些平台。 因为此过程涉及本机库,所以我们不仅必须特定于哪个平台,还必须特定于特定的样式和版本。

从应用程序目录中打开.csproj文件,并在以下之间添加以下XML标记: 和标签:



   
   
<PropertyGroup >
    <RuntimeIdentifiers > win10-x64;osx.10.12-x64;debian.8-x64 </RuntimeIdentifiers >
</PropertyGroup >

这告诉.NET,我们要为Windows 10 64位,macOS Sierra Debian 8构建应用程序的独立版本。现在,您需要做的就是为我们之前选择的每个运行时运行dotnet publish 。为每个平台编译本机二进制文件:

dotnet publish screenshot

./app/bin/Debug/netcoreapp1.1/文件夹中查找,每个平台都有一个目录,每个目录都有一个发布文件夹。 该文件夹中不仅是应用程序的本机版本的副本,而且还包含运行所需的所有.NET库的副本,因此您无需在目标系统上安装.NET。 只需将文件复制到一个干净的盒子中,然后为您所在的平台运行可执行文件。

file output screenshot

run output

结论

使用C#和新的.NET Core平台,您可以在任何平台上构建应用程序并将其发布到任何平台上-100%的代码重用,完全本机,无需运行时或框架安装。 您可以在GitHub上看到支持此技术的新框架(运行时源也在GitHub上 )。 对于C#和整个.NET平台来说,这是令人兴奋的时刻。

翻译自: https://opensource.com/article/17/5/cross-platform-console-apps

.core 控制台应用程序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值