【问题标题】:Launch condition in WIX to check advertise modeWIX 中的启动条件以检查广告模式
【发布时间】:2014-10-06 10:13:08
【问题描述】:

我正在使用 /jm 选项从命令提示符运行我的 MSI。我想在我的 WIX 文件中添加一个 LaunchCondition,以检查是否使用 /jm 选项触发了 MSI。

提前致谢。

【问题讨论】:

  • 您考虑过 ADVERTISE 属性吗? msdn.microsoft.com/en-us/library/aa367547(v=vs.85).aspx
  • 经过一番研究,我得到了答案:要停止广告模式,您可以在 wix 的功能块中添加 Allowadvertise = "no"。如果 MSI 是从逗号行触发并设置了 ADVERTISE=ALL 属性,这将停止广告模式。仍在寻找一种方法来限制 SCCM 安装中的广告模式。
  • 感谢 JohnL,我从 MSDN 链接获得了广告。但这是我的要求。我仍然无法为我的 MSI 完全禁用广告模式。
  • 为什么要关闭广告模式?

标签: wix windows-installer


【解决方案1】:

https://wixtoolset.org/documentation/manual/v3/xsd/wix/advertiseexecutesequence.html

尝试使用AdvertiseExecuteSequence 标签。您可以创建错误操作以防止发生任何广告安装。只需将错误放在序列的开头即可。

初始化错误动作:

<CustomAction Id="ErrorMessageId" Error="Insert error message here"/>`

运行错误动作:

<AdvertiseExecuteSequence>
    <Custom Action="ErrorMessageId" Before="CostInitialize"/>
</AdvertiseExecuteSequence>

【讨论】:

    【解决方案2】:

    每个功能都可以进入广告状态。一种简单的方法是编辑 .msi,如果可能的话,将“msidbFeatureAttributesDisallowAdvertise”(8) 和“msidbFeatureAttributesUIDisallowAbsent”(16) 属性添加到 MSI 功能表。 (我不使用 WiX,所以你会发现自己)。

    另一种方法是添加一个自定义操作,该操作控制 ADVERTISE 属性是否为非空并中止安装。

    将功能操作从广告更改为安装本地会非常棘手,但也许可行。

    如果您有路径 (.msp),还有其他方法可以保护它不被安装在广告模式下的功能。

    【讨论】:

      猜你喜欢
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多