Kanzi 4.1.1 迁移指南¶
使用此迁移指南将 Kanzi 应用程序从 Kanzi 4.1.0 更新到 Kanzi 4.1.1。
kzb 文件格式版本的更改¶
kzb 文件格式版本从 45.0 更改为 45.1。请使用此版本的 Kanzi Studio 重新导出您的工程。Kanzi 仅加载其预期的确切格式版本,因此由早期版本导出的 kzb 文件将无法加载。
Kanzi Studio 将被引用的工程移出其他工程的目录¶
When you open a project in Kanzi Studio 4.1.1, Kanzi Studio looks at every project it reaches through project references and moves any project stored inside another one’s directory out to a sibling directory. This is a one-time change to the directory layout on disk, it happens the first time you open the project, and you cannot undo it. Kanzi Studio does not open the project unless you let it move the directories. The exception is a project stored inside a directory of a project it references: Kanzi Studio cannot move either one, so it leaves that nesting in place and writes a warning to the log. It still moves every other nested project that it finds.
例如,Kanzi Studio 会将以下布局:
MyApplication/
Tool_project/
MyApplication.proj.kzm
SharedAssets/
SharedAssets.proj.kzm
转换为以下布局:
MyApplication/
Tool_project/
MyApplication.proj.kzm
SharedAssets/
SharedAssets.proj.kzm
Kanzi Studio 会更新其管理的路径:工程和 kzb 引用、Kanzi Engine 插件路径、Binary Export Directory、Application Export Directory 和 Preview Working Directory 设置、Application Root Directory 和 APK Path 构建配置设置,以及 Kanzi Studio 插件添加的路径属性。
其中有两种情况它不做处理:
值为宏(例如
<ProjectDirectory>)的设置,以便该设置在每台计算机上都能继续解析。如果此类设置指向已移动的目录,请自行更新。包含未保存更改的工程。Kanzi Studio 会更新此类工程的路径但不保存该工程,以免替您保存更改,并在 Log 窗口中写入一条说明。保存该工程以保留更新后的路径。
已移动工程的应用程序代码无需更改。Kanzi Studio 将整个工程目录作为一个单元移动,因此其中的路径(例如 CMake 和 Gradle 配置中的路径)仍能继续解析。Kanzi Studio 不会改动 Visual Studio 解决方案和工程文件,CMake 会使用新路径重新生成这些文件。
会失效的是已移动工程之外指向该工程内部的路径,因为目录的深度发生了变化。移动之后,请更新:
构建脚本和预构建事件,例如将应用程序二进制文件从一个工程复制到另一个工程的
xcopy命令。这些命令按目录层级计数,因此为嵌套布局编写的命令需要不同数量的..步骤。Kanzi Studio 解决方案结构 中的命令已经采用 Kanzi Studio 强制执行的布局。持续集成配置。
.gitignore以及您的版本控制系统中的等效文件,以及其中存储的任何路径。当工程的 Binary Export Directory 指向已移动的目录时,加载导出的 kzb 文件的任何内容。Kanzi Studio 会自行更新该设置,因此 kzb 文件现在会输出到新位置。
在打开受影响的工程之前,请从版本控制中签出该工程的工程文件,以及它引用的每个工程的工程文件。Kanzi Studio 会保存其路径被更新的每个工程,因此当它发现只读的工程文件时,会取消打开操作。当其中某个工程已在另一个 Kanzi Studio 实例中打开时,它也会取消打开操作。
当您访问到的工程仍为 kzproj 格式时,Kanzi Studio 会在保存该工程之前询问是否将其转换为 kzm 格式,转换会删除原始 kzproj 文件。
使用 KanziStudio.exe /Script 运行的命令脚本会不经询问直接移动目录,因为确认操作需要交互式的 Kanzi Studio。当脚本使用 LoadProject 命令打开受影响的工程时,请先在 Kanzi Studio 中打开该工程一次,以便在您可以确认的情况下进行移动。请参阅 自动化 Kanzi Studio 任务。
要避免移动,请将被引用的工程存储在引用它的工程旁边,而不是存储在该工程的目录中。Kanzi Studio 4.1.1 不再允许您将存储在另一个工程目录中的工程添加为引用。请参阅 在何处存储被参考的工程。
工程模板仅在设置了 KANZI_LINK_KZLUA 时才链接 Lua 插件¶
工程模板现在通过 KANZI_LINK_KZLUA CMake 选项控制是否链接 kzlua 插件,方式与其他可选的 Kanzi Engine 插件相同。Android 应用程序和 Android 服务应用程序模板以前会无条件链接 Kanzi::kzlua。
当您根据模板更新工程的 Application/CMakeLists.txt 时,还需更新 Application/configs/platforms/android_gradle/kanzinative/build.gradle,该文件设置了 -DKANZI_LINK_KZLUA=ON。在 SDK 工作流程中,如果没有该选项,您的 APK 将不再包含 libkzlua.so,并且 Kanzi 无法加载使用 Lua 的 kzb 文件。Package Manager 工作流程不受影响,因为它通过 engine-libraries 包提供该插件。请参阅 部署 Lua 插件。