Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Well, there is the free way and the $$$ way. I cannot document everything here, but this should get you started.</p> <p>On a side note, yes, Windows Installer is a maddening technology. There are many times where I think a task will be straightforward, but it actually becomes complicated. You definitely have to immerse yourself to understand it. </p> <p>In any case, here goes:</p> <p><strong>Free: WiX</strong> (<a href="http://wix.sourceforge.net/" rel="noreferrer"><strong>here</strong></a>)</p> <p>This is a free tool to generate MSI files from a set of XML configuration files. I'll leave you to find tutorials online, but here is the crux:</p> <p>You can compress your EXE into the installer by using the following tag in the WXS file:</p> <pre><code>&lt;Binary Id="MYEXE" src="&lt;path to my exe?"/&gt; </code></pre> <p>Then you can create a custom action which launches your EXE file:</p> <pre><code>&lt;CustomAction Id="EXECA_CALLMYEXE" Return="check" Execute="deferred" BinaryKey="MYEXE" ExeCommand="my command line"/&gt; </code></pre> <p>Then you insert your custom action into the <code>InstallExecuteSequence</code> in the appropriate spot (I almost always run mine somewhere between <code>InstallInitialize</code> and <code>InstallFinalize</code>)</p> <pre><code>&lt;InstallExecuteSequence&gt; &lt;Custom Action="EXECA_CALLMYEXE" After="InstallInitialize"&gt;&lt;![CDATA[Not REMOVE]]&gt;&lt;/Custom&gt; </code></pre> <p><strong>$$$: Get InstallShield</strong> (<a href="http://www.installshield.com/" rel="noreferrer"><strong>HERE</strong></a>)</p> <p>First create a "Basic MSI" project and make sure you say you want <em>no setup.exe generated</em>. You set this in the Release settings.</p> <p>Then you essentially do the same thing as with WiX, but you have a UI for it. </p> <ul> <li>You can specify your helper EXE file by using the Direct Editor and putting your EXE file in the 'Binary' table</li> <li>You can create a custom action to launch that EXE file from the "Custom Actions" Node in the tree on the left</li> <li>You can insert the custom action by selecting "Install Sequences" and putting it in the <code>InstallExecuteSequence</code> somewhere between <code>InstallInitialize</code> and <code>InstallFinalize</code> as I said before.</li> </ul> <p>Sorry, I could not be more detailed, but this should be a good start.</p>
 

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