【问题标题】:Settings file to be used in WIX and InstallShield在 WIX 和 InstallShield 中使用的设置文件
【发布时间】:2010-07-07 00:22:17
【问题描述】:

我已经使用 WIX 创建了一个设置,并且我有一个 wxi 文件,我在其中为安装程序定义了一些属性。其中一些由自定义操作读取并在那里使用。所以wxi文件中定义的变量在主文件中设置为一些基本的属性值。

配置文件:

<?define MyVariable="fileName.txt" ?>

主文件:

 <Property Id="MyVariableProperty" Value="$(var.MyVariable)"/>

现在我想创建相同的设置但使用 InstallShiled,并且我想使用包含所有设置的相同文件或类似文件以避免重复相同的信息。

我的问题是如何做到这一点?在 WIX 和 InstallShield 中,我应该使用哪种文件才能从中读取值并将它们设置为属性,而不涉及任何自定义操作。

谢谢。

【问题讨论】:

    标签: wix properties installshield


    【解决方案1】:

    这是一个构建自动化问题,我知道解决它的 2 条途径。

    1) 将属性放在合并模块中,然后使用产品配置和发布标志来驱动哪个模块被合并到安装程序中。

    2) 编写一个构建步骤,从 wxs/wxi 中解析 XPI 并更新安装程序项目。这可以通过 IS COM 自动化接口、DTF(二进制 ISM)和 XPath DOM(XML ISM)来完成。

    【讨论】:

    • 我知道系统搜索功能,我正在尝试实现类似(例如):在我的构建计算机上有一个设置文件,我在其中定义应用程序名称(和其他)。然后,当构建两个设置时,此更改将反映在两个设置中,而无需我的任何进一步干预,因此我不必在两个不同的地方更改相同的属性。
    • 抱歉,我想我读到您在安装时使用自定义操作来读取 XPI。这确实是一个构建自动化问题,我知道解决它的 2 条路径。 1) 将属性放在合并模块中,然后使用产品配置和发布标志来驱动哪个模块被合并到安装程序中。 2) 编写一个构建步骤,从 wxs/wxi 中解析 XPI 并更新安装程序项目。这可以通过 IS COM 自动化接口、DTF(二进制 ISM)和 XPath DOM(XML ISM)来完成。
    • 顺便说一句,我一直在转向使用空 InstallShield 模板构建的 WiX 合并模块,该模板使用自定义构建自动化和 WiX 片段来构建安装程序。我使用 C#/Linq2XML 来解析 Wxi 文件并将它们转换为 COM 自动化接口调用。它可以很好地扩展并为我提供最好的 WiX 和 InstallShield。我使用 IsWiX 和 Votive 来维护 WiX 合并模块。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-17
    相关资源
    最近更新 更多