aardio 文档

aardio 工程文件(*.aproj)格式规范

发布日期:2026-10-20

1. 概述

aardio 工程文件的后缀名为 .aproj,采用 UTF-8 编码的 XML 格式存储工程配置、目录结构与发布参数。

2. 文件示例

2.1 标准桌面窗口工程示例

<?xml version="1.0" encoding="utf-8"?>
<project ver="10" name="Gif123" libEmbed="true" icon="\app.ico" ui="win" output="Gif123.exe" CompanyName="aardio" FileDescription="Gif123" LegalCopyright="Copyright (C) aardio.com 2022" ProductName="Gif123" InternalName="Gif123" FileVersion="3.4.0.0" ProductVersion="3.4.0.0" publishDir="/dist/" dstrip="true" local="false" ignored="false">
    <file name="main.aardio" path="main.aardio" comment="main.aardio"/>
    <folder name="资源文件" path="res" embed="true" local="false" ignored="false"/>
    <folder name="窗体文件" path="dlg" comment="目录" embed="true" local="false" ignored="false">
        <folder name="setting" path="dlg\setting" embed="true" comment="目录" local="false" ignored="false">
            <file name="setting.aardio" path="dlg\setting\setting.aardio" comment="dlg\setting\setting.aardio"/>
            <file name="recorder.aardio" path="dlg\setting\recorder.aardio" comment="dlg\setting\recorder.aardio"/>
            <file name="gif.aardio" path="dlg\setting\gif.aardio" comment="dlg\setting\gif.aardio"/>
        </folder>
    </folder>
</project>

2.2 含 Web 前端工程目录的示例

<?xml version="1.0" encoding="utf-8"?>
<project ver="37" name="WebViewApp" libEmbed="true" icon="..." ui="win" output="WebViewApp.exe" CompanyName="aardio" FileDescription="WebViewApp" LegalCopyright="Copyright (C) aardio 2026" ProductName="WebViewApp" InternalName="WebViewApp" FileVersion="1.0.0.0" ProductVersion="1.0.0.0" publishDir="/dist/" dstrip="false" local="false" ignored="false">
    <file name="main" path="main.aardio"/>
    <folder name="窗体" path="forms" comment="" embed="true" local="false" ignored="false"/>
    <folder name="网页" path="web" embed="true" comment="目录" local="true">
        <file name="index.html" path="web\index.html" comment="web\index.html"/>
        <file name="index.js" path="web\index.js" comment="web\index.js"/>
    </folder>
    <folder name="网页源码" path="web.src" embed="false" comment="目录" local="false" ignored="true"/>
</project>

3. 元素与属性规范

3.1 <project> 根元素

<project> 元素用于定义工程全局配置与编译发布信息,并作为工程根目录节点包含 <folder> 或 <file> 子元素。

属性名 类型 默认值/典型值 说明
ver 字符串 "10" 兼容的最小 aardio 主版本号,固定为 "10"。
name 字符串 工程名称 显示在工程管理器顶层节点的工程名称。
ui 字符串 "win" 界面与子系统类型,可选值:win、console、website。
output 字符串 "*.exe" 发布时生成的目标可执行文件名称(如 "Gif123.exe")。
publishDir 字符串 "/dist/" 发布输出目录(相对于工程根目录的路径)。
icon 字符串 "\app.ico" 或 "..." EXE 图标文件路径(相对于工程根目录);设为 "..." 或空串时使用默认图标。
libEmbed 布尔字符串 "true" 是否将引用的 aardio 库编译并内嵌到 EXE 资源中。
dstrip 布尔字符串 "false" 发布时是否移除调试符号信息。
CompanyName 字符串 公司/作者名 EXE 版本信息资源:公司/单位名称。
FileDescription 字符串 工程描述 EXE 版本信息资源:文件说明。
LegalCopyright 字符串 版权声明 EXE 版本信息资源:版权信息。
ProductName 字符串 产品名称 EXE 版本信息资源:产品名称。
InternalName 字符串 内部名称 EXE 版本信息资源:内部名称。
FileVersion 字符串 "0.0.0.1" EXE 版本信息资源:文件版本号(主版本.次版本.构建号.修订号)。
ProductVersion 字符串 "0.0.0.1" EXE 版本信息资源:产品版本号(主版本.次版本.构建号.修订号)。
local 布尔字符串 "false" 在 <project> 根节点上固定为 "false",不可更改。
ignored 布尔字符串 "false" 在 <project> 根节点上固定为 "false",不可更改。

关键属性详解


3.2 <folder> 虚拟目录元素

<folder> 元素表示工程中的目录节点,可嵌套包含子级 <folder> 或 <file> 元素。

属性名 类型 默认值/典型值 说明
name 字符串 目录显示名 显示在工程视图中的友好名称(如 "资源文件"、"窗体文件")。
path 字符串 相对路径 对应的实际文件夹路径(相对于工程根目录,如 "res"、"dlg\setting")。
comment 字符串 "目录" 或路径 节点备注信息(可选)。
embed 布尔字符串 "true" / "false" 是否将该目录作为内嵌资源编译进 EXE 文件。
local 布尔字符串 "false" 是否作为本地目录处理(发布时打包该物理目录下的全部文件)。
ignored 布尔字符串 "false" 发布工程生成 EXE 时是否忽略此目录。

关键属性详解


3.3 <file> 文件元素

<file> 元素表示添加到工程中的具体文件节点。

属性名 类型 说明
name 字符串 显示在工程视图中的友好名称(如 "main.aardio" 或 "main")。
path 字符串 实际文件的相对路径(相对于工程根目录,如 "main.aardio"、"dlg\setting\setting.aardio")。
comment 字符串 文件备注说明(可选,通常为文件的相对路径或用途说明)。

工程根目录文件约束

  1. 唯一启动文件:在工程根目录(即 <project> 元素的直接子节点)下,只能有一个应用程序启动文件,其文件路径必须是 main.aardio 或以 .main.aardio 结束。
  2. 禁止散落根目录文件:除了上述唯一启动文件外,工程根目录下只能包含 <folder> 元素;其他所有代码文件或资源文件都必须存放在各自的子目录(<folder>)或用户库目录(/lib/)中。

4. 编程读写与自动化规范

4.1 读写工具

4.2 IDE 打开状态下的同步限制与最佳实践

  1. 避免直接覆写已打开的 .aproj 文件: 已经在 aardio 工程管理器中打开的工程文件,目前不支持自动同步硬盘上的外部修改;并且 aardio 在关闭工程或保存所有文档时会自动将内存中的工程配置写回硬盘,这会覆盖外部直接对 .aproj 文件所做的修改。
  2. AI 与自动化工具生成流程: 如果是 AI 或自动化脚本生成、修改 *.aproj 文件,应当在完成所有对 .aproj 文件的编辑并落盘保存之后,再调用 ide.openProject() 打开该工程文件。
  3. 向已打开工程添加代码文件: 对于已经在 IDE 中打开的工程,如需新增代码模块,建议优先将代码文件放到工程的 /lib/ 用户库目录下(无需修改 *.aproj 工程文件),随后调用 ide.refreshUserLib() 即可刷新工程视图中的「用户库」目录与智能提示数据。

    外部自动化程序在其他工程目录下添加文件,用户可在工程视图内右键点击对应工程目录,在右键菜单中点击同步本地目录...菜单项。但是工程目录的 local 属性为 true 时则不需要同同步本地目(同步会报错)。

Markdown 格式