title: Why Icon element require Id attribute to end with '.exe' or '.ico'
body: <p><strong>Why Icon for Shortcut element should have Id attribute ending with '.ico' or '.exe'?</strong></p>
  
  <p>So this code</p>
  
  <pre><code>&lt;Icon Id="ProgramIcon" SourceFile="Images\MyAppIcon.ico"/&gt;
  
  &lt;Component Guid="MY_GUID" Id="MyAppComponent"&gt;
      &lt;File Source="MyApp.exe" Name="MyApp.exe" Id="MyApp.exe"&gt;
          &lt;Shortcut Id="MyApp.Shortcut" Directory="ApplicationProgramMenuDir" WorkingDirectory="INSTALLDIR" Name="MyApp" Icon="ProgramIcon" Advertise="yes" /&gt;
      &lt;/File&gt;
  &lt;/Component&gt;
  </code></pre>
  
  <p>generates compile error:</p>
  
  <pre><code>error LGHT0204: ICE50: The extension of Icon 'ProgramIcon' for Shortcut 'MyApp.Shortcut' does not match the extension of the Key File for component 'MyAppComponent'. [D:\APPS\MyProject.wixproj]
  </code></pre>
  
  <p>but this code</p>
  
  <pre><code>&lt;Icon Id="ProgramIcon.ico" SourceFile="Images\MyAppIcon.ico"/&gt;
  
  &lt;Component Guid="MY_GUID" Id="MyAppComponent"&gt;
      &lt;File Source="MyApp.exe" Name="MyApp.exe" Id="MyApp.exe"&gt;
          &lt;Shortcut Id="MyApp.Shortcut" Directory="ApplicationProgramMenuDir" WorkingDirectory="INSTALLDIR" Name="MyApp" Icon="ProgramIcon.ico" Advertise="yes" /&gt;
      &lt;/File&gt;
  &lt;/Component&gt;
  </code></pre>
  
  <p>compiles fine.</p>
  
  <p>It's first time I see such limitations for Id attribute of any element and it looks very strange. I don't see any reason for this even to be a warning. So I don't understand some basics of this functionality. Please help me understand the reasons of described behavior.</p>