title: How to inspect a CustomAction's property (Wix)?
body: <p>I am trying to put together a small 'prerequisites' dialog in Wix to give confidence to the users that they have all of the required things needed to run my software:</p>
  
  <p>For example, I have a need for Managed DirectX, so I look for some DLLs:</p>
  
  <pre><code>&lt;Property Id="MANAGED_DIRECTX"&gt;
    &lt;DirectorySearch Path="$(env.SystemRoot)\Microsoft.NET\DirectX for Managed Code\1.0.2902.0" Depth="0" Id="MDXDir"&gt;
      &lt;FileSearch Name="Microsoft.DirectX.dll"/&gt;
    &lt;/DirectorySearch&gt;
  &lt;/Property&gt;
  
  &lt;Property Id="MANAGED_DIRECTX_DIRECTINPUT"&gt;
    &lt;DirectorySearch Path="$(env.SystemRoot)\Microsoft.NET\DirectX for Managed Code\1.0.2902.0" Depth="0" Id="MDXInputDir"&gt;
      &lt;FileSearch Name="Microsoft.DirectX.DirectInput.dll"/&gt;
    &lt;/DirectorySearch&gt;
  &lt;/Property&gt;
  </code></pre>
  
  <p>I also have a CustomAction to combine my condition logic:</p>
  
  <pre><code>&lt;CustomAction Id="SetManagedDirectXInstalled"
                Property="MANAGED_DIRECTX_INSTALLED"
                Value="NOT([MANAGED_DIRECTX] = '') AND NOT ([MANAGED_DIRECTX_DIRECTINPUT] = ''")/&gt;
  </code></pre>
  
  <p>This CustomAction is sequenced:</p>
  
  <pre><code>&lt;InstallExecuteSequence&gt;
    &lt;Custom Action="SetManagedDirectXInstalled" After="AppSearch" /&gt;
    &lt;RemoveExistingProducts After="InstallInitialize" /&gt;
  &lt;/InstallExecuteSequence&gt;
  </code></pre>
  
  <p>What I should now be able to do is use "MANAGED DIRECTX INSTALLED" to do something, e.g.</p>
  
  <pre><code>    &lt;Control Id="NoManagedDirectX" Type="Text" X="20" Y="50" Width="300" Height="60" Transparent="yes" NoPrefix="yes" Hidden="yes"&gt;
        &lt;Text&gt;Microsoft Managed DirectX (MDX) for DirectX 9.0 is NOT installed&lt;/Text&gt;
        &lt;Condition Action="show"&gt;NOT MANAGED_DIRECTX_INSTALLED&lt;/Condition&gt;
      &lt;/Control&gt;
      &lt;Control Id="ManagedDirectX" Type="Text" X="20" Y="50" Width="300" Height="60" Transparent="yes" NoPrefix="yes" Hidden="yes"&gt;
        &lt;Text&gt;Microsoft Managed DirectX (MDX) for DirectX 9.0 is correctly installed&lt;/Text&gt;
        &lt;Condition Action="show"&gt;MANAGED_DIRECTX_INSTALLED&lt;/Condition&gt;
      &lt;/Control&gt;
  </code></pre>
  
  <p>It doesn't matter what I do, the condition is always false (e.g. not installed) even when I know the files are there.  Using the msiexec command with /l*vx does not show the MANAGED DIRECTX INSTALLED property anywhere.</p>
  
  <p>When a &lt;Condition&gt; is used with the following, it successfully prevents installation (although I no longer want to block installs in this case, just advise).</p>
  
  <pre><code>&lt;Condition Message="You must have Microsoft Managed DirectX (MDX) for DirectX 9.0 installed"&gt;
    MANAGED_DIRECTX AND MANAGED_DIRECTX_DIRECTINPUT
  &lt;/Condition&gt;
  </code></pre>
  
  <p>How can I trace/debug this (or what have I done wrong?)</p>
  
  <hr>
  
  <p><strong><em>EDIT</em></strong> - I'm now certain that my CustomAction is not even being called, setting it to the following is not showing expected results either!</p>
  
  <pre><code>&lt;CustomAction Id='SetManagedDirectXInstalled'
                Property='MANAGED_DIRECTX_INSTALLED'
                Value='Something hard-coded'/&gt;
  </code></pre>
  
  <p>or </p>
  
  <pre><code>&lt;CustomAction Id='SetManagedDirectXInstalled'
                Error='Some error should show!'/&gt;
  </code></pre>