Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Can you elaborate what kind of tools are you using to create this installer?</p> <p>I use Windows Installer XML(<a href="http://wix.sourceforge.net/" rel="nofollow noreferrer">WIX</a>). In WIX you could do something like this:</p> <pre><code> &lt;!-- Property definitions --&gt; &lt;?define SkuName = "MyCoolApp"?&gt; &lt;?define ProductName="My Cool Application"?&gt; &lt;?define Manufacturer="Acme Inc."?&gt; &lt;?define Copyright="Copyright © Acme Inc. All rights reserved."?&gt; &lt;?define ProductVersion="1.1.0.0"?&gt; &lt;?define RTMProductVersion="1.0.0.0" ?&gt; &lt;?define UpgradeCode="{EF9D543D-9BDA-47F9-A6B4-D1845A2EBD49}"?&gt; &lt;?define ProductCode="{27EA5747-9CE3-3F83-96C3-B2F5212CD1A6}"?&gt; &lt;?define Language="1033"?&gt; &lt;?define CodePage="1252"?&gt; &lt;?define InstallerVersion="200"?&gt; </code></pre> <p>And define upgrade options: </p> <pre><code>&lt;Upgrade Id="$(var.UpgradeCode)"&gt; &lt;UpgradeVersion Minimum="$(var.ProductVersion)" IncludeMinimum="no" OnlyDetect="yes" Language="$(var.Language)" Property="NEWPRODUCTFOUND" /&gt; &lt;UpgradeVersion Minimum="$(var.RTMProductVersion)" IncludeMinimum="yes" Maximum="$(var.ProductVersion)" IgnoreRemoveFailure="no" IncludeMaximum="no" Language="$(var.Language)" Property="OLDIEFOUND" /&gt; &lt;/Upgrade&gt; </code></pre> <p>Then further you could use <code>OLDIEFOUND</code> and <code>NEWPRODUCTFOUND</code> properties depending on what you want to do:</p> <pre><code>&lt;!-- Define custom actions --&gt; &lt;CustomAction Id="ActivateProduct" Directory='MyCoolAppFolder' ExeCommand='"[MyCoolAppFolder]activateme.exe"' Return='asyncNoWait' Execute='deferred'/&gt; &lt;CustomAction Id="NoUpgrade4U" Error="A newer version of MyCoolApp is already installed."/&gt; </code></pre> <p>The above defined actions have to be define in <code>InstallExcecuteSequence</code> </p> <pre><code>&lt;InstallExecuteSequence&gt; &lt;Custom Action="NoUpgrade4U" After="FindRelatedProducts"&gt;NEWPRODUCTFOUND&lt;/Custom&gt; &lt;Custom Action="ActivateProduct" OnExit='success'&gt;NOT OLDIEFOUND&lt;/Custom&gt; &lt;/InstallExecuteSequence&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. 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.
    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