title: Program Compatibility Assistant thinks my app is an installer
body: <p>I have created a .NET C# WinForms application on Win 7 RTM x64, which let's say I have called DataInstaller.</p>
  
  <p>When I run this program outside of the debugger (just an empty form with no functionality at the moment), it works fine until I close the form. I then get a message from the Program Compatibility Assistant that says:</p>
  
  <p>This program might not have installed correctly</p>
  
  <p>I then get the option to reinstall using recommended settings or to say that the install did work as expected.</p>
  
  <p>If I name the app 'DataThingy' this isn't an issue, I guess this is related to the way that programs called *Setup gain a UAC shield icon.</p>
  
  <p>I assume that there will be something simple that I can put in the application manifest to prevent this?</p>
  
  <p>I'm not sure if this occurs on Vista as I don't have access currently.</p>
  
  <p>Changing the name is not an option and turning off UAC is not an option so please don't suggest this!</p>
  
  <p>Edit:</p>
  
  <p>OMG.</p>
  
  <p>It seems that if any of the following are true, UAC sticks its oar in:</p>
  
  <p>Exe name contains the word Installer</p>
  
  <p>AssemblyInfo.cs</p>
  
  <pre><code>AssemblyTitle contains the word 'Installer'
      e.g. [assembly: AssemblyTitle("DataInstaller")]
  AssemblyProduct contains the word 'Installer'
      e.g. [assembly: AssemblyProduct("Data Installation Utility")]
  </code></pre>
  
  <p>'Installer' can also be 'Setup'.</p>
  
  <p>It beggars belief, it really does. Obviously one of the old VB6 programmers got relocated into the UAC team over at Redmond.</p>
  
  <p>I still need a workaround, I'm not prepared to accept that my application can't possibly be an called an installer because it doesn't touch the registry or put any files in the Program Files folder.</p>
  
  <p>I assume that UAC would put the machine into total lockdown if I tried to execute my application called IAmAVirus.exe. (Actually, I daren't try it because I'm not entirely convinced that I'm just being silly)</p>