1 简介

从.Net core 开始,微软就实现了.Net的跨平台能力。在本文中,笔者使用Ubuntu 18.04.6 LTS上运行一个测试项目,以演示Linux下.Net6.0 的编译方法。

2 配置.NET6 环境

可以参见 在Ubuntu18.04上运行.NET 5.0 之 Hello World。关于版本号不一样的问题,只需将SDK5.0的安装命令修改成6.0, 即 sudo apt-get install dotnet-sdk-5.0 修改为 sudo apt-get install dotnet-sdk-6.0 即可。

3 拉回项目

在Linux环境中,将远程Git项目拉回,本示例中使用测试 https://gitee.com/hwaust/aqdas-convert-for-linux.git 仓库,拉回到 /home/hao 目录下。

root@server00:~# cd /home/hao/
root@server00:/home/hao/# git clone https://gitee.com/hwaust/aqdas-convert-for-linux.git
Cloning into 'aqdas-convert-for-linux'...
remote: Enumerating objects: 105, done.
remote: Counting objects: 100% (105/105), done.
remote: Compressing objects: 100% (104/104), done.
remote: Total 105 (delta 58), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (105/105), 9.58 MiB | 1.85 MiB/s, done.
Resolving deltas: 100% (58/58), done.
root@server00:/home/hao/temp#

4 编译项目

有了项目的源代码后,只需使用 .Net6.0 SDK 的命令 dotnet 进行发布即可,具体如下所示。

4.1 进入项目目录

首先,进入项目所在目录。

root@server00:~# cd /home/hao/aqdas-convert-for-linux/

4.2 使用 git pull 更新代码(可选)

这步是可选,用于更新代码。

root@server00:/home/hao/aqdas-convert-for-linux# git pull
remote: Enumerating objects: 12, done.
remote: Counting objects: 100% (12/12), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 8 (delta 6), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (8/8), done.
From https://gitee.com/hwaust/aqdas-convert-for-linux
   1d67430..dca4d93  master     -> origin/master
Updating 1d67430..dca4d93
Fast-forward
 DataConverter/NPOIDemo.cs | 4 +++-
 DataConverter/Program.cs  | 1 +
 2 files changed, 4 insertions(+), 1 deletion(-)

4.3 生成并发布代码

使用 dotnet publish project_dir 命令对工程目录进行编译并发布,其中 project_dir 是项目所在的路径,在本示例中为 DataConverter,具体如下所示:

root@server00:/home/hao/aqdas-convert-for-linux# dotnet publish DataConverter/
Microsoft (R) Build Engine version 17.0.0+c9eb9dd64 for .NET
Copyright (C) Microsoft Corporation. All rights reserved.

  Determining projects to restore...
  All projects are up-to-date for restore.
  DataConverter -> /home/hao/aqdas-convert-for-linux/DataConverter/output/Debug/net6.0/DataConverter.dll
  DataConverter -> /home/hao/aqdas-convert-for-linux/DataConverter/output/Debug/net6.0/publish/

发布完成以后,可以看到生成的路径信息,在本示例中生成的内容在 DataConverter -> /home/hao/aqdas-convert-for-linux/DataConverter/output/Debug/net6.0/publish/ 目录中。

5 运行代码

默认的生成的可执行程序的名称与工程目录名称一致。在本示例中,名称为 DataConverter,通过路径+DataConverter即可访问,如果当前目录与 DataConverter 相同,则通过 ./DataConverter 启动程序。

root@server00:/home/hao/aqdas-convert-for-linux# DataConverter/output/Debug/net6.0/publish/DataConverter
path = /home/hao/aqdas-convert-for-linux/DataConverter/output/Debug/net6.0/publish/
pyfile = /home/hao/aqdas-convert-for-linux/DataConverter/output/Debug/net6.0/publish/hello.py
Test1: No argument.
Test2: One argument:  Jack
root@server00:/home/hao/aqdas-convert-for-linux#

6 小结

微软出品还是可靠的,配置安装相对比较容易,只要按以上几步即可实现下载、编译和配置。由于都是使用命令行完成,所以可以汇总在一起,以shell脚本的形式实现自动化的安装部署。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐