基于 Avalonia 的 MAAFramework 通用 GUI 项目 | A universal GUI project for MAAFramework based on Avalonia
313
stars
1,534
commits
C#
primary language
Sep 9, 2026
updated
MFAAvalonia 是基于 Avalonia UI 和 SukiUI 构建的 MaaFramework 通用 GUI。资源开发者通过 Project Interface V2 描述任务、选项、控制器和界面文本,用户即可在桌面端配置并运行自动化任务。
MFAAvalonia 本身不包含具体业务资源。通常应将它集成到基于 MaaFramework 的资源项目中使用。
import 与 pretask 等能力。
| 项目 | 要求 |
|---|---|
| 运行时 | .NET 10 Runtime。官方发布包默认为非自包含构建 |
| 系统 | 与所下载包匹配的 Windows、Linux 或 macOS 系统及 CPU 架构 |
| 资源 | 包含有效 interface.json 和 MaaFramework 资源文件的资源项目 |
不同资源可能有额外的模拟器、ADB、应用程序或系统权限要求,请以对应资源项目的说明为准。
MaaPracticeBoilerplate 已提供 MFAAvalonia 集成流程。开发资源项目前,请先阅读项目模板的开发说明和 Project Interface V2 协议。
MFAAvalonia 面向资源发布后的配置与运行。开发和排查 Pipeline 时,请使用 MaaFramework 提供的调试工具。
interface.json、资源文件和所需组件。手动打包时,MaaFramework 原生库、资源目录和 interface.json 必须彼此匹配。一般情况下应优先使用项目模板生成发布产物。
如需提供首次启动的预设配置,可在发布包的 config 目录放置 config.template.json。仅当目录中不存在其它配置 JSON(包括 config/instances 下的实例配置)时,该文件才会转换为 config.json;更新已有安装时不会覆盖或新增用户配置。
模板还可使用 PresetSettings 字典为不同 preset 指定独立配置:
{
"UI.LiveView.EnableLiveView": false,
"PresetSettings": {
"preset_a": {
"UI.LiveView.EnableLiveView": true
},
"preset_b": {
"UI.LiveView.EnableLiveView": false
}
}
}
PresetSettings 仅用于首次初始化 preset,转换完成后不会作为普通配置项写入 config.json。
MFAAvalonia 支持通过命令行选择实例并执行任务。实例可以使用名称或实例 ID 指定;实例 ID 可在实例标签页的右键菜单中复制。
MFAAvalonia.exe [参数]
| 参数 | 作用 |
|---|---|
-h, --help | 显示命令行帮助并退出 |
-c <实例>, -i <实例>, --instance <实例> | 按实例名称或实例 ID 激活目标实例;名称匹配不区分大小写,实例 ID 优先匹配 |
--autostart | 自动执行目标实例中当前配置并勾选的任务;未指定实例时使用当前激活的实例 |
-q, --quit-after-run | 本次命令行自动启动的任务完成后退出 MFAAvalonia;仅与 --autostart 配合时有效 |
-f, --forceStart | 目标实例已运行时,先停止当前任务再重新启动;仅与 --autostart 和实例参数同时使用时有效 |
# 查看帮助
.\MFAAvalonia.exe --help
# 切换到指定实例
.\MFAAvalonia.exe --instance "日常任务"
.\MFAAvalonia.exe -i 1a2b3c4d
# 自动执行指定实例
.\MFAAvalonia.exe --autostart -i "日常任务"
# 执行完成后退出
.\MFAAvalonia.exe --autostart -i 1a2b3c4d -q
# 若实例正在运行,则停止后重新执行
.\MFAAvalonia.exe --autostart -i "日常任务" --forceStart
.\MFAAvalonia.exe --autostart -c 1a2b3c4d -f
--autostart 指向正在运行的实例时,默认跳过本次启动,不重复添加任务。--autostart、实例参数和 -f 时,会等待现有任务停止后重新启动。-q 只跟踪本次命令启动的任务;与 -f 配合时,停止旧任务不会被视为本次执行完成。旧版 Advanced 配置已废弃。现有资源应迁移到 Project Interface V2,不应继续依赖旧字段。
MFAAvalonia 在 Project Interface V2 的 task 项中额外支持以下字段:
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
repeatable | boolean | false | 是否在任务设置中显示重复次数控件 |
repeat_count | integer | 1 | 初始重复次数;-1 表示持续执行,直到用户停止任务。仅在 repeatable 为 true 时生效 |
{
"task": [
{
"name": "重复任务",
"entry": "TaskEntry",
"repeatable": true,
"repeat_count": 1
}
]
}
用户在界面中修改的重复次数会随实例配置保存。
将 .md 文件放入 resource/announcement/ 目录即可作为资源公告显示。程序或资源更新的 Release Notes 会单独下载,并显示在更新提示中。
将 logo.ico 放置在程序根目录的 Assets 文件夹中,即可替换 MFAAvalonia 的窗口和托盘图标。
安装 .NET 10 SDK 后执行:
dotnet restore
dotnet build MFAAvalonia.sln -c Debug
dotnet publish MFAAvalonia.Desktop/MFAAvalonia.Desktop.csproj -c Release -r win-x64
将 win-x64 替换为项目支持的其他 RID,即可构建对应平台。运行仍需要有效的资源目录和 interface.json。
本项目基于 GPL-3.0 License 开源。
MFAAvalonia 使用了 MaaFramework、MaaFramework.Binding.CSharp、Avalonia、SukiUI、Serilog、Newtonsoft.Json、Mirror酱 等开源项目与服务。
感谢所有为 MFAAvalonia 做出贡献的开发者。
C#
96.2%
Java
2.3%
基于 Avalonia 的 MAAFramework 通用 GUI 项目 | A universal GUI project for MAAFramework based on Avalonia
313
stars
1,534
commits
C#
primary language
Sep 9, 2026
updated
MFAAvalonia 是基于 Avalonia UI 和 SukiUI 构建的 MaaFramework 通用 GUI。资源开发者通过 Project Interface V2 描述任务、选项、控制器和界面文本,用户即可在桌面端配置并运行自动化任务。
MFAAvalonia 本身不包含具体业务资源。通常应将它集成到基于 MaaFramework 的资源项目中使用。
import 与 pretask 等能力。
| 项目 | 要求 |
|---|---|
| 运行时 | .NET 10 Runtime。官方发布包默认为非自包含构建 |
| 系统 | 与所下载包匹配的 Windows、Linux 或 macOS 系统及 CPU 架构 |
| 资源 | 包含有效 interface.json 和 MaaFramework 资源文件的资源项目 |
不同资源可能有额外的模拟器、ADB、应用程序或系统权限要求,请以对应资源项目的说明为准。
MaaPracticeBoilerplate 已提供 MFAAvalonia 集成流程。开发资源项目前,请先阅读项目模板的开发说明和 Project Interface V2 协议。
MFAAvalonia 面向资源发布后的配置与运行。开发和排查 Pipeline 时,请使用 MaaFramework 提供的调试工具。
interface.json、资源文件和所需组件。手动打包时,MaaFramework 原生库、资源目录和 interface.json 必须彼此匹配。一般情况下应优先使用项目模板生成发布产物。
如需提供首次启动的预设配置,可在发布包的 config 目录放置 config.template.json。仅当目录中不存在其它配置 JSON(包括 config/instances 下的实例配置)时,该文件才会转换为 config.json;更新已有安装时不会覆盖或新增用户配置。
模板还可使用 PresetSettings 字典为不同 preset 指定独立配置:
{
"UI.LiveView.EnableLiveView": false,
"PresetSettings": {
"preset_a": {
"UI.LiveView.EnableLiveView": true
},
"preset_b": {
"UI.LiveView.EnableLiveView": false
}
}
}
PresetSettings 仅用于首次初始化 preset,转换完成后不会作为普通配置项写入 config.json。
MFAAvalonia 支持通过命令行选择实例并执行任务。实例可以使用名称或实例 ID 指定;实例 ID 可在实例标签页的右键菜单中复制。
MFAAvalonia.exe [参数]
| 参数 | 作用 |
|---|---|
-h, --help | 显示命令行帮助并退出 |
-c <实例>, -i <实例>, --instance <实例> | 按实例名称或实例 ID 激活目标实例;名称匹配不区分大小写,实例 ID 优先匹配 |
--autostart | 自动执行目标实例中当前配置并勾选的任务;未指定实例时使用当前激活的实例 |
-q, --quit-after-run | 本次命令行自动启动的任务完成后退出 MFAAvalonia;仅与 --autostart 配合时有效 |
-f, --forceStart | 目标实例已运行时,先停止当前任务再重新启动;仅与 --autostart 和实例参数同时使用时有效 |
# 查看帮助
.\MFAAvalonia.exe --help
# 切换到指定实例
.\MFAAvalonia.exe --instance "日常任务"
.\MFAAvalonia.exe -i 1a2b3c4d
# 自动执行指定实例
.\MFAAvalonia.exe --autostart -i "日常任务"
# 执行完成后退出
.\MFAAvalonia.exe --autostart -i 1a2b3c4d -q
# 若实例正在运行,则停止后重新执行
.\MFAAvalonia.exe --autostart -i "日常任务" --forceStart
.\MFAAvalonia.exe --autostart -c 1a2b3c4d -f
--autostart 指向正在运行的实例时,默认跳过本次启动,不重复添加任务。--autostart、实例参数和 -f 时,会等待现有任务停止后重新启动。-q 只跟踪本次命令启动的任务;与 -f 配合时,停止旧任务不会被视为本次执行完成。旧版 Advanced 配置已废弃。现有资源应迁移到 Project Interface V2,不应继续依赖旧字段。
MFAAvalonia 在 Project Interface V2 的 task 项中额外支持以下字段:
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
repeatable | boolean | false | 是否在任务设置中显示重复次数控件 |
repeat_count | integer | 1 | 初始重复次数;-1 表示持续执行,直到用户停止任务。仅在 repeatable 为 true 时生效 |
{
"task": [
{
"name": "重复任务",
"entry": "TaskEntry",
"repeatable": true,
"repeat_count": 1
}
]
}
用户在界面中修改的重复次数会随实例配置保存。
将 .md 文件放入 resource/announcement/ 目录即可作为资源公告显示。程序或资源更新的 Release Notes 会单独下载,并显示在更新提示中。
将 logo.ico 放置在程序根目录的 Assets 文件夹中,即可替换 MFAAvalonia 的窗口和托盘图标。
安装 .NET 10 SDK 后执行:
dotnet restore
dotnet build MFAAvalonia.sln -c Debug
dotnet publish MFAAvalonia.Desktop/MFAAvalonia.Desktop.csproj -c Release -r win-x64
将 win-x64 替换为项目支持的其他 RID,即可构建对应平台。运行仍需要有效的资源目录和 interface.json。
本项目基于 GPL-3.0 License 开源。
MFAAvalonia 使用了 MaaFramework、MaaFramework.Binding.CSharp、Avalonia、SukiUI、Serilog、Newtonsoft.Json、Mirror酱 等开源项目与服务。
感谢所有为 MFAAvalonia 做出贡献的开发者。
C#
96.2%
Java
2.3%