title: Unresolved reference to CustomAction:Cleanup in WiX
body: <p>When processing an MSI file from Installshield with dark.exe it generates a file with multiple instances of the error when built from Visual Studio 2013:</p>
  
  <pre><code>Unresolved reference to symbol 'CustomAction:CleanUp'
  </code></pre>
  
  <p>Part of the wxs file is:</p>
  
  <pre><code>          &lt;Dialog Id="SetupCompleteSuccess" X="50" Y="50" Width="374" Height="266" Title="[ProductName] - InstallShield Wizard" NoMinimize="yes"&gt;
              &lt;Control Id="OK" Type="PushButton" X="230" Y="243" Width="66" Height="17" Text="&amp;amp;Finish" TabSkip="no" Default="yes" Cancel="yes"&gt;
                  &lt;Publish Event="DoAction" Value="CleanUp"&gt;ISSCRIPTRUNNING="1"&lt;/Publish&gt;
                  &lt;Publish Event="DoAction" Value="LaunchProgramFileFromSetupCompleteSuccess"&gt;LAUNCHPROGRAM And PROGRAMFILETOLAUNCHATEND &amp;lt;&amp;gt; "" And NOT Installed&lt;/Publish&gt;
                  &lt;Publish Event="EndDialog" Value="Exit"&gt;1&lt;/Publish&gt;
                  &lt;Publish Event="DoAction" Value="ShowMsiLog"&gt;MsiLogFileLocation And (ISSHOWMSILOG="1") And NOT ISENABLEDWUSFINISHDIALOG&lt;/Publish&gt;
              &lt;/Control&gt;
  </code></pre>
  
  <p>Looking at the MSI file with ORCA, in table CustomAction contains an entry for LaunchProgramFileFromSetupCompleteSuccess (which does not throw an error) and no entry for Cleanup, so dark.exe is behaving consistently as it creates a set of CustomActions as follows:</p>
  
  <pre><code>       &lt;CustomAction Id="ISPreventDowngrade" Error="[IS_PREVENT_DOWNGRADE_EXIT]" /&gt;
      &lt;CustomAction Id="ISRunSetupTypeAddLocalEvent" BinaryKey="ISExpHlp.dll" DllEntry="RunSetupTypeAddLocalEvent" /&gt;
      &lt;CustomAction Id="ISSelfRegisterCosting" BinaryKey="ISSELFREG.DLL" DllEntry="ISSelfRegisterCosting" /&gt;
      &lt;CustomAction Id="ISSelfRegisterFiles" BinaryKey="ISSELFREG.DLL" DllEntry="ISSelfRegisterFiles" Execute="deferred" Impersonate="no" /&gt;
      &lt;CustomAction Id="ISSelfRegisterFinalize" BinaryKey="ISSELFREG.DLL" DllEntry="ISSelfRegisterFinalize" /&gt;
      &lt;CustomAction Id="ISUnSelfRegisterFiles" BinaryKey="ISSELFREG.DLL" DllEntry="ISUnSelfRegisterFiles" Execute="deferred" Impersonate="no" /&gt;
      &lt;CustomAction Id="SetARPINSTALLLOCATION" Property="ARPINSTALLLOCATION" Value="[INSTALLDIR]" /&gt;
      &lt;CustomAction Id="SetAllUsersProfileNT" Property="ALLUSERSPROFILE" Value="[%SystemRoot]\Profiles\All Users" /&gt;
      &lt;CustomAction Id="setAllUsersProfile2K" Property="ALLUSERSPROFILE" Value="[%ALLUSERSPROFILE]" /&gt;
      &lt;CustomAction Id="setUserProfileNT" Property="USERPROFILE" Value="[%USERPROFILE]" /&gt;
      &lt;CustomAction Id="ShowMsiLog" Directory="SystemFolder" ExeCommand="[SystemFolder]notepad.exe &amp;quot;[MsiLogFileLocation]&amp;quot;" Return="asyncNoWait" /&gt;
      &lt;CustomAction Id="LaunchProgramFileFromSetupCompleteSuccess" BinaryKey="NewBinary19" DllEntry="LaunchProgram" /&gt;
      &lt;CustomAction Id="ISPrint" BinaryKey="SetAllUsers.dll" DllEntry="PrintScrollableText" /&gt;
  </code></pre>
  
  <p>How should I deal with this problem?</p>