我试图让我的 Qt Installer 项目更舒适。
我需要将有关我的应用程序和组件(config.xml 和 package.xml)的信息集中在一个文件中。我不想跳转到具有相同名称的不同文件并在 xml 标签之间搜索可变元素。
我的第一个想法是在安装程序项目的 *.pro 文件中正确执行此操作。我将变量部分放在安装程序项目文件的标题中。但是我需要将生成xml的代码放在哪里?
这样做的更好(本机/舒适/跨平台)方法是什么?
我试图让我的 Qt Installer 项目更舒适。
我需要将有关我的应用程序和组件(config.xml 和 package.xml)的信息集中在一个文件中。我不想跳转到具有相同名称的不同文件并在 xml 标签之间搜索可变元素。
我的第一个想法是在安装程序项目的 *.pro 文件中正确执行此操作。我将变量部分放在安装程序项目文件的标题中。但是我需要将生成xml的代码放在哪里?
这样做的更好(本机/舒适/跨平台)方法是什么?
答案很简单:您无法为 Qt 安装程序生成 XML 文件:您手动编写它们,如文档中所述。
本节介绍创建安装程序必须完成的以下任务:
- 创建一个包含所有配置文件和可安装包的包目录。
- 创建一个配置文件,其中包含有关如何构建安装程序二进制文件和在线存储库的信息。
- 创建一个包信息文件,其中包含有关可安装组件的信息。
- 创建安装程序内容并将其复制到包目录。
- 使用binarycreator工具创建安装程序。
但是,如果您仔细查看示例,您仍然可以在 *.pro 文件中生成安装程序。让我们随机选择一个示例,System Info:
TEMPLATE = aux
INSTALLER = installer
INPUT = $$PWD/config/config.xml $$PWD/packages
example.input = INPUT
example.output = $$INSTALLER
example.commands = ../../bin/binarycreator -c $$PWD/config/config.xml -p $$PWD/packages ${QMAKE_FILE_OUT}
example.CONFIG += target_predeps no_link combine
QMAKE_EXTRA_COMPILERS += example
OTHER_FILES = README
如果您想将此应用于您的项目,我认为您必须../../bin/binarycreator
通过更改 PATH 来修改该行并使其具有系统意识。可以调用外部脚本并解析 XML 文件,并进行您想做的替换,但您会将复杂性转移到另一个地方。
您将在 XSLT 和 XML 之间创建一些东西,而不是维护普通的旧 XML 文件。也许您可以只编写 XSLT(或 XSL 或 XQUERY)并生成 XML,但我不知道有谁在使用它了。上次我用它是很久以前我学习计算机科学的时候:)