.NET AOT 试玩、构建、发布
前言
3月5日,GTA5 更新了增强版,我随之回忆起了 GTA 的回忆,下载并重新游玩起来,可能因为刚发布外挂还没跟进,公开战局回归了本质,但是依旧不适合运货发展,所以我便想使用以前的卡单方式一劳永逸,结果发现防火墙卡单、文件卡单在增强版都被修复了,甚至差传都不能用了。。。
我便用起来古法,菜单栏右键冻结卡单! 1..2..3..15! 居然还能用!但我发现这并不方便,便自己研究写了一个小工具,可以一键卡单,因为是使用 .NET8 控制台应用开发,顺手研究了一下 AOT 构建,并且将踩到的坑记录下来以便帮助他人。
开发环境准备
要使用 .NET AOT 有几个先决条件:
- 必须使用 Visual Studio 2022 或更高版本
- 安装
.NET8 SDK
或更高版本 - 安装
使用 C++ 的桌面开发
在 Visual Studio Installer 里安装。 (坑1)
创建 AOT 项目
目前 .NET8 似乎支持的 AOT 仅在控制台类应用上,还未支持 Form 项目。
通过 VS 创建一个控制台基于 .NET8 的 AOT 项目。
就和写普通的控制台应用一样。
构建 AOT 项目
构建这部分有两个方案早期只能通过 CLI 构建 AOT 项目,现在经过我的测试发现可以使用 VS 内自带的 发布 进行 AOT 构建。
(坑1) 想要构建 AOT 项目必须安装 使用 C++ 的桌面开发
这个选项,不然就报错
如下图:
我们只需要前往 Visual Studio Installer 里直接勾选 使用 C++ 的桌面开发
选项安装即可,无需修改增删组件。
安装完毕后,重新打开 AOT 项目进行如下方式构建:
- 使用古法 .NET CLI 构建
- 使用 VS 内置发布工具构建
其一 使用古法 .NET CLI 构建
- 使用
cmd
cd 进入项目目录 - 输入构建命令
dotnet publish
- 等待构建出现 成功
其二 使用 VS 内置发布工具构建
- 右键解决方案选择发布
- 发布方式选择文件夹 (即编译到目录内)
- 继续选择文件夹
- 文件夹路径可以自己随意改
- 设置完毕后,点击 显示所有设置 文字
- 部署模式改为
独立
、目标运行时改为win-x64
、文件发布选项点开勾选启用 ReadyToRun 编译
(坑2) 文件发布选项内有个 生成单个文件 的勾选框,它的功能是为了打包资产到一个 exe(dll) 内,但是似乎和 AOT 有冲突,(目前?)只能二选一。
错误内容:PublishAot and PublishSingleFile cannot be specified at the same time.
如下图:
- 点击发布按钮,测试是否构建成功,并且日志输出内是否有
Generating native code
即代表 AOT 构建成功。
为了 GTAOL 写的小工具
我管它叫 FreezeV 即 冻结5 (非常言简意赅不是吗?)
如果你想要使用这款工具,可以在我的网盘或者用户群内下载。