title: How to do Vista/UAC aware self-extract installer
body: <p>I distribute my software with a WinZip self-extract archive (SFX).<br>
  I am aware of <a href="https://stackoverflow.com/questions/898220/how-to-prevent-this-program-might-not-have-installed-correctly-messages-on-vis">this</a> and <a href="https://stackoverflow.com/questions/5276501/this-program-might-not-have-installed-correctly">that</a>. But those doesn't seem to work for SFX scenarios.</p>
  
  <p>While installing, the SFX unpacks and starts a contained program (written by me), that does the installation. This includes the creation of a registry entry for the programs list under the windows control panel. Further, the program has a manifest.
  So it should be "Vista-aware". The SFX-executable also includes a manifest.</p>
  
  <p>The problem is that the Program Compatibility Assistant (PCA) throws its message
  <code>"This program might not have installed correctly"</code> anyway.
  So my customers tell me i'm a bad programmer...</p>
  
  <p>I googled a lot, and read a lot about the PCA, including many Microsoft sites.<br>
  Those tell me to do:  </p>
  
  <ol>
  <li>embed a manifest  </li>
  <li>create registry entries for the programs list under the windows control panel</li>
  </ol>
  
  <p>My manifest looks like this:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;
    &lt;trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"&gt;
      &lt;security&gt;
        &lt;applicationRequestMinimum&gt;
          &lt;defaultAssemblyRequest permissionSetReference="Custom" /&gt;
          &lt;PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" /&gt;
        &lt;/applicationRequestMinimum&gt;
        &lt;requestedPrivileges&gt;
          &lt;requestedExecutionLevel level="requireAdministrator" uiAccess="false" /&gt;
        &lt;/requestedPrivileges&gt;
      &lt;/security&gt;
    &lt;/trustInfo&gt;
  &lt;/asmv1:assembly&gt;
  </code></pre>
  
  <p><strong>So where did i go wrong?</strong><br>
  Are there any further things to do for the PCA?<br>
  Do the SFX executable have to include some other things?</p>