【问题标题】:conditional installation not working for administrative install wix toolset有条件的安装不适用于管理安装 wix 工具集
【发布时间】:2020-08-31 11:35:34
【问题描述】:

我正在尝试使用管理安装来提取 msi 以创建补丁,但它没有提取所有组件,我怀疑这是由于条件安装元素在常规安装中运行良好

<Feature Id="SomeFeature" Level="0">
        <ComponentGroupRef Id="Somecomponent" />
        <ComponentGroupRef Id="Somecomponents" />
       <Condition Level="1"><![CDATA[(SOMEPROP = "true") OR (REMOVE ~= "ALL")]]></Condition>
      </Feature>

是否可以使用条件元素进行管理安装? SOMEPROP 属性值默认为 true,并且在一些我认为不会在管理安装中运行的自定义操作上更改。

【问题讨论】:

  • 我现在正要出门,但请阅读this answer towards the bottom - “更新”部分。那时我还没有完成对这个问题的研究——这不是一个优先事项。
  • 非常感谢@SteinÅsmul,您能否阐明“我猜暂定结论是不要将任何功能设置为 Level=0,而是设置 Level=1,然后将它们设置为 Level=0具有评估为真的特征条件。”参考您在上面分享的答案。
  • 据我所知,这个想法是将功能级别默认为 1 或其他正值,然后使用评估为 true 的条件语句将其设置回 0(隐藏它)(如在这种情况下,我想隐藏该功能)。请参阅 INSTALLLEVEL 上的 this answer 作为“高水位线”来控制默认功能选择,并参阅同一主题上的 one more answer here
  • 非常感谢@SteinÅsmul

标签: .net wix windows-installer patch


【解决方案1】:

根据Windows Installer SDK

在任何安装过程中都不会安装安装级别为 0(零)的功能,包括管理安装。

您需要反转您的逻辑,以便默认安装该功能并有条件地禁用该功能。

【讨论】:

  • 谢谢 Bob,所以你基本上是说要删除条件安装逻辑?
  • 您仍然可以这样做,但该功能应该是级别 1 并使用 Condition 元素将其设置为 0。这样它在管理员安装期间启用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-08
相关资源
最近更新 更多