I have created a WiX file over 2 years ago which contains a check for a feature action value of 5.
The value 5 should indicate reinstall/repair, but I can't find any WiX/msi documentation on it. The pages I've found go up to 4, like on 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>
I'm starting to wonder if the value 5 is ever used, but then again I find it hard to believe that I put it in there without a reason.
Interesting. Here's the closest documentation I can find. Like you mention, on Conditional Statement Syntax, the values
-1
,1
,2
,3
, and ,4
are documented. The related Examples of Conditional Statement Syntax doesn't have any instances of 5.The documentation for MsiGetFeatureState has a list of constants from
msi.h
. If you have that around, it would be better to look there, but a third party copy listsINSTALLSTATE_DEFAULT
with the value of 5. This value is corroborated on KB 884468, but only shown with MsiQueryProductState; similarly the constant is mentioned on MsiConfigureProduct.So, in short, it sounds likely that the value 5 is only valid in the context of a product, and is not valid in the context of a feature or component.