Note that there are some explanatory texts on larger screens.

plurals
  1. POHelp with ensuring a bootstrapper is used but having upgrades work
    primarykey
    data
    text
    <p>We have an MSI we have authored in WiX 3.5.2030.0 and targeting Windows Installer 4.0 (for <code>MSIUSEREALADMINDETECTION</code> support). We have a property that we have defined in the MSI to enforce use of a bootstrapper (I say "enforce" but it's really "very strongly encourage" of course):</p> <pre><code>&lt;Property Id="SETUPEXE" Secure="yes" /&gt; &lt;Condition Message="You must run the MSI through the setup program; you cannot run it directly."&gt; SETUPEXE = 1 &lt;/Condition&gt; </code></pre> <p>When we run the produced MSI as a new install, everything works. When we run it as an upgrade, however, the property passed in to the installer seems to be "lost" at some point. The log shows the following relevant entries:</p> <pre><code>MSI (s) (2C:8C) [11:27:41:648]: Command Line: SETUPEXE=1 &lt;other properties&gt; MSI (s) (2C:8C) [11:27:43:055]: PROPERTY CHANGE: Adding SETUPEXE property. Its value is '1'. MSI (s) (2C:CC) [11:28:11:038]: PROPERTY CHANGE: Adding NETFRAMEWORK20INSTALLROOTDIR property. Its value is 'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\'. Action ended 11:28:11: AppSearch. Return value 1. MSI (s) (2C:CC) [11:28:11:147]: Doing action: LaunchConditions Action start 11:28:11: LaunchConditions. MSI (s) (2C:CC) [11:28:33:662]: Product: &lt;product&gt; -- You must run the MSI through the setup program; you cannot run it directly. Action ended 11:28:33: LaunchConditions. Return value 3. Action ended 11:28:33: INSTALL. Return value 3. Property(N): SETUPEXE = 0 Property(N): SecureCustomProperties = NETFRAMEWORK20INSTALLROOTDIR;NETFRAMEWORK35;NETFRAMEWORK35_SP_LEVEL;NEWERVERSIONDETECTED;OLDERVERSIONBEINGUPGRADED;SETUPEXE Property(S): SecureCustomProperties = NETFRAMEWORK20INSTALLROOTDIR;NETFRAMEWORK35;NETFRAMEWORK35_SP_LEVEL;NEWERVERSIONDETECTED;OLDERVERSIONBEINGUPGRADED;SETUPEXE Property(S): SETUPEXE = 1 </code></pre> <p>I have done some searching on this and looked at the log in <code>WiLogUtl</code> and have at least figured out that <code>Property(N)</code> indicates a "nested" property, but I don't know what the nesting is when I'm running the MSI directly through <code>msiexec</code>. Then, I don't know why the nested property is not set correctly when the client and server values are correct. How do I resolve this?</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload