WiX/MSI:记录的功能操作值 5 的位置



我在 2 年前创建了一个 WiX 文件,其中包含对功能操作值 5 的检查。

值 5 应表示重新安装/修复,但我找不到任何 WiX/msi 文档。我找到的页面多达 4 个,就像在 MSDN 上一样。

  <!-- always install if feature will be installed/reinstalled local -->
  <Custom  Action="MyInstallAction" After="InstallFiles">
    <![CDATA[(&ca_feature=3) OR (&ca_feature=5)]]> <!--  <<< HERE  -->
  </Custom>
  <!-- remove if feature is going from local to absent -->
  <Custom  Action="MyUninstallAction" After="RemoveRegistryValues">
    <![CDATA[(&ca_feature=2) AND (!ca_feature=3)]]> 
  </Custom>
  <Custom  Action="UninstallUsbBusDriver" After="RemoveRegistryValues">
    <![CDATA[(&ca_feature=2) AND (!ca_feature=3)]]>
  </Custom>

开始怀疑值 5 是否曾经被使用过,但话又说回来,我发现很难相信我无缘无故地把它放在那里。

有趣。这是我能找到的最接近的文档。就像你提到的,在条件语句语法上,记录了值 -1123 和 、 4。相关的条件语句语法示例没有任何 5 实例。

MsiGetFeatureState 的文档包含来自 msi.h 的常量列表。如果你有这个,最好看看那里,但第三方副本列出了值为 5 的INSTALLSTATE_DEFAULT。此值在 KB 884468 上得到证实,但仅与 MsiQueryProductState 一起显示;同样,常量在MsiConfigureProduct上也提到了。

因此,简而言之,值 5 听起来可能仅在产品上下文中有效,而在功能或组件的上下文中无效。

在Microsoft文档页面上留下了一条评论,指出 INSTALLSTATE 为 5 是"当该功能即将重新安装/修复时"。 请参阅: https://msdn.microsoft.com/en-us/library/aa368012(v=vs.85(.aspx

最新更新