dotnet7的本机编译(AOT)
Dotnet7的 AOT 当前还不支持交叉编译,以下例子是 ubuntu 为例
一 安装dotnet7
目前还是preview 版本 (Preview7)
从官网下载dotnet7 sdk
https://dotnet.microsoft.com/en-us/download/dotnet/7.0
ubuntu 的安装包是一个压缩包,很简单,解压到某个目录即可,假设这里是 /data/bin/dotnet7
二 安装原生编译要用到的库
sudo apt-get install clang zlib1g-dev
三 创建一个Console项目(当前只支持Console,尚未支持Asp.net项目)
mkdir /tmp/hello
cd /tmp/hello
/data/bin/dotnet7/dotnet new console
code .
四 第三步最后用vscode 打开了项目,修改 csproj 项目文件,添加几行
<PublishAot>true</PublishAot> //要求发布为AOT
<StripSymbols>true</StripSymbols> //要求不要合并调试符号
<TrimMode>full</TrimMode> //要求全裁剪,这是dotnet7的默认配置(当AOT时)
五 打包
/data/bin/dotnet7/dotnet publish -r linux-x64 -c Release
在项目目录下 bin/Release/net7.0/linux-x64 下能看到有 hello 名字的二进制文件,即原生编译后的程序,当前在我的电脑上是 4.9 MB (4,898,328 字节)
同时还有个 hello.dbg 是调试符号文件