【问题标题】:Pass flag to merge module from WiX installer?从 WiX 安装程序将标志传递给合并模块?
【发布时间】:2010-12-06 14:35:16
【问题描述】:

我们有合并模块,当某个条件变量为真时将安装 PDB 文件,但是我们需要设置此条件。

我可以在 WiX 安装程序中设置此条件并以某种方式将其传递给合并模块吗?

【问题讨论】:

标签: c# wix windows-installer wix3 merge-module


【解决方案1】:

您可以使用以下格式在合并模块中设置安装程序属性:

<property_name>.<module_GUID>

例如:

CONDITION_PROPERTY.32D73316_E513_43C3_99F5_381A4B5F0A78

在您的安装程序中,您可以尝试使用自定义操作来设置合并模块条件中使用的属性。

自定义操作元素可能如下所示:

<CustomAction Id="SetMsmProperty" Return="check" Property="CONDITION_PROPERTY.32D73316_E513_43C3_99F5_381A4B5F0A78" Value="myValue" />

您可以在 InstallExecuteSequence -> AppSearch 之后安排操作,因此您可以添加此 InstallExecuteSequence 元素:

<InstallExecuteSequence>
  <Custom Action="SetMsmProperty" After="AppSearch">NOT Installed</Custom>
</InstallExecuteSequence>

您可以在此处阅读有关 wix 自定义操作的更多信息:

【讨论】:

  • 我应该在 wxs 文件的什么地方设置这个?
【解决方案2】:

我通常只是创建一个子功能来在安装程序中创建一个变化点。然后,您可以对其设置功能条件,以控制是否安装合并模块引入的组件。这比在每个组件上设置条件要简单得多,并且让您更灵活地决定是否要向最终用户显示“调试符号”功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多