Reputation: 592
I'm having a problem with install conditions in maintenance mode that only happens in systems with UAC. I'm doing a registry search to set a couple of properties that are used in the install condition. This works during the intial installation, but when I try to do a repair or modify the feature selection, the install condition fails, and I get the message for the failed install condition.
This is what my wix source looks like:
<Product Id="MyProduct" ... >
<Package InstallPrivileges="elevated" ... />
<Condition Message="This installtion requires product X or Y.
Setup will now quit.">
<![CDATA[(MYPROPERTY1 OR MYPROPERTY2)]]>
</Condition>
<Property Id="MYPROPERTY1">
<RegistrySearch Id="MySearch1"
Root="HKLM"
Key="Software\Company\ProductX"
Name="Installed"
Type="raw"
Win64="no"/>
</Property>
<Property Id="MYPROPERTY2">
<RegistrySearch Id="MySearch2"
Root="HKLM"
Key="Software\Company\ProductY"
Name="Installed"
Type="raw"
Win64="no"/>
</Property>
<!-- ... Features and components and stuff ... -->
</Product>
I'm assuming that UAC is preventing my registry searches from happening, but I thought setting InstallPrivileges to "elevated" would cause a UAC prompt during repair. I never get a UAC prompt though, the repair just fails. If I disable UAC, then the repair works as expected. Am I missing something else here?
Edit: I should point out that the failure only happens when I choose "Change" from ARP, and then choose Repair. If I choose "Repair" from ARP directly it works as expected.
Upvotes: 2
Views: 2034
Reputation: 55581
Log the repair to see what properties AppSearch is setting. Also consider putting "or Installed" on your conditions so that the conditions only apply during the initial install. Nothing more annoying the can't install Product B because Product A was uninstalled first.
Update: The AppSearch in the good log and bad log are behaving the exactly the same. The problem is you didn't put the @Secure attribute on your property elements so that aren't listed in the SecureCustomProperties property. If you look in the log you'll find a line that says "ignoring disallowed property". For more information read:
Reasons why your setup may fail on Windows Vista
Upvotes: 4