Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>It had a number of steps. Remember I was running this from a bootstrapper, not an MSI file, whereby levarius's answer would have sufficed.</p> <p>Basically, I removed any of the launch logic that was posted in the original question, and created a new package, whose sole functionality was to kick off an application (using a custom action), and whose location had previously been saved in the registry - that is, the application running when it found that an update was available, set this item in the registry.</p> <p>The package (called PostInstall below) is then run ONLY if one of the other packages has been installed previously - found by the existence of a key in the registry (set in each product's MSI). This means that no application will be started automatically after a <em>new</em> install has completed.</p> <p>The following is from the bootstrapper bundle (WiX 3.6 in my case)</p> <pre><code>&lt;!-- Determine what items are installed in the event of an upgrade--&gt; &lt;util:RegistrySearch Root="HKLM" Key="SOFTWARE\CompanyName" Value="ProductAInstalled" Variable="ProductAInstalled" Result="exists" Format="raw" /&gt; &lt;util:RegistrySearch Root="HKLM" Key="SOFTWARE\CompanyName" Value="ProductBInstalled" Variable="ProductBInstalled" Result="exists" Format="raw" /&gt; &lt;Chain&gt; &lt;!-- Package for .NET prerequisite. References a Package that is actually in the referenced WiX file WixNetFxExtension. --&gt; &lt;PackageGroupRef Id="NetFx40Web"/&gt; &lt;MsiPackage SourceFile="..\SetupProductA\bin\Release\SetupProductA.msi" InstallCondition="(chkProductA) OR (ProductAInstalled)" /&gt; &lt;MsiPackage SourceFile="..\SetupProductB\bin\Release\SetupProductB.msi" InstallCondition="(chkProductB) OR (ProductBInstalled)" /&gt; &lt;!-- Run PostInstall only if this was run as part of an upgrade. --&gt; &lt;!-- NB: This is the portion that kicks off the downloaded bootstrapper. --&gt; &lt;MsiPackage SourceFile="..\PostInstall\bin\Release\PostInstall.msi" InstallCondition="(ProductAInstalled) OR (ProductBInstalled)" /&gt; &lt;/Chain&gt; </code></pre>
    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. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      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