准备应用文件
准备应用文件¶
要通过 Crossplay 启动器分发应用程序,您需要准备在 PC 上运行应用程序所需的文件。这些文件包括应用图标、应用执行文件、应用配置文件等,如下面的示例所示:
ROOT_FOLDER
│ meta.json
└─ APP_FOLDER
│ app.ico
│ app.exe
│ app.ini
│ ...
└─ resources
└─ data
└─ packages
└─ ...
ROOT_FOLDER¶
ROOT_FOLDER 是包含使用 Crossplay 启动器分发应用所需所有数据的顶级目录。ROOT_FOLDER 应包含 APP_FOLDER 和 meta.json。文件夹名称 ROOT_FOLDER 可以由应用开发者指定。指定名称后,应在 Crossplay Launcher > 应用管理 > 下载设置 > 游戏安装选项 > 文件夹名称 的 Hive 控制台 中输入。
APP_FOLDER¶
APP_FOLDER是包含应用程序执行所需文件的文件夹。准备并将应用程序执行文件、图标文件、资源、数据和其他必要文件放置在此文件夹中。文件夹名称APP_FOLDER可以由应用程序开发者指定。然而,文件夹名称不应包含"#"或";"字符,并且不应包含空子文件夹。
META.JSON¶
在meta.json中,包含了应用程序执行文件(app.exe)、图标文件(app.ico)的相对路径,这些文件放置在APP_FOLDER中,以及在卸载应用程序时要删除的路径或注册表路径。应用程序执行文件和图标文件的相对路径是相对于meta.json文件的位置的。meta.json必须位于**与APP_FOLDER相同的位置**。
按照下面的示例格式编写meta.json文件。
{
"launch": "APP_FOLDER/app.exe",
"icon": "APP_FOLDER/app.ico",
"delete": [
{
"type": "CSIDL",
"path": "0x1c/myGameLocalRes"
},
{
"type": "general",
"path": "C:/myGameGlobalRes"
},
{
"type": "registrykey",
"root": "0x80000001",
"path": "SOFTWAREMyGame"
}
]
}
字段名称 | 描述 | 类型 | 必需 |
---|---|---|---|
launch | 在使用 Crossplay 启动器运行应用时,应用执行文件的相对路径(例如,app.exe)。 | 字符串 | 是 |
icon | 在使用 Crossplay 启动器安装应用时,创建桌面和开始菜单快捷方式所需的应用图标文件的相对路径(例如,app.ico)。要在 Crossplay 启动器中创建快捷方式文件,图标文件必须存在。文件格式应为 ico ,并且为了与屏幕分辨率兼容,应该打包为一个包含 6 张不同分辨率图像的 ico 文件。 16X16 32X32 48X48 64X64 128X128 256X256 | 字符串 | 是 |
delete | 在运行应用期间,应用可能会在应用安装文件夹之外的文件夹中生成数据。在卸载应用时,需要删除位于应用安装文件夹之外的文件或注册表项。此字段包含这些文件或注册表的信息,即要删除的文件夹信息和注册表信息的数组。 type : 卸载应用时要删除的数据类型(文件夹或注册表) root : 仅在 type 为注册表时输入的值,表示注册表根 * path : 卸载应用时要删除的文件夹或注册表路径 | 数组 | 否 |
以下是 delete
数组的指南:
字段名称 | 描述 | 类型 | 必需 |
---|---|---|---|
type | 要删除的数据类型。 CSIDL : 当要删除的文件位于Windows操作系统使用的特殊文件夹中,例如 ProgramFiles 或 AppData general : 当要删除的文件位于普通路径中 * registrykey : 当要删除的文件是注册表文件 | 字符串 | Y |
root | 表示注册表根的十六进制字符串,仅在type 为registrykey 时输入。以下是注册表根及其对应的十六进制值的示例。 根: HKEY_CLASSES_ROOT, 值: 0x80000000 根: HKEY_CURRENT_USER, 值: 0x80000001 * 根: HKEY_LOCAL_MACHINE, 值: 0x80000002 * 根: HKEY_USERS, 值: 0x80000003 * 根: HKEY_CURRENT_CONFIG, 值: 0x80000005 | 字符串 | N |
path | type 数据所在的路径。* 当type 为CSIDL : 以 CSIDL(16个十六进制数字)/{剩余路径} 的格式书写 * 当type 为general : 以绝对路径书写 * 当type 为registrykey : 在整个注册表路径中,仅书写子树和键,排除根。 | 字符串 | Y |
Note
请参考 此链接 获取 CSIDL 十六进制值。
以下是配置 meta.json 的示例,当某个游戏应用程序文件准备如下所示时:
数据 | 类型 | 数据位置 | 备注 |
---|---|---|---|
game.exe | 游戏执行文件 | ROOT_FOLDER/game | ROOT_FOLDER 和 game 都是游戏公司指定的目录 |
icon.ico | 图标文件 | ROOT_FOLDER/game | ROOT_FOLDER 和 game 都是游戏公司指定的目录 |
MyGame | 注册表 | HKEY_CURRENT_USERSOFTWARESOFTWAREMyGame | 游戏执行期间生成的注册表数据,卸载时将与游戏一起删除的数据 |
myGameGlobalRes | 文件夹(通用路径) | C:/myGameGlobalRes | 游戏执行期间生成的数据,包含在卸载时将与游戏一起删除的文件的文件夹 |
myGameLocalRes | 文件夹(特殊路径) | C:/Users/[username]/AppData/Local/myGameLocalRes | 游戏执行期间生成的数据,包含在卸载时将与游戏一起删除的文件的文件夹 |
在上述情况下,按如下方式编写 meta.json 文件: