title: WIX custom action data is blank in installuisequence
body: <p>I can see that the dll is getting called and it's the right entry point at the right time but none of the session data is empty.  This is driving me nuts!</p>
  
  <p>please, anyone got an idea on how to fix this?</p>
  
  <p>Thanks</p>
  
  <p>here are the WIX definitions</p>
  
  <pre><code>    &lt;Binary Id="CustomActionBinary" SourceFile="$(var.BinariesForWix)blah.blah.CA.dll"  /&gt;
  
      &lt;CustomAction Id="OptionsFileFound" Return="check" Property="OptionsFileFound.Get" Value="file=[OPTIONSPATH],version=[INSTALLVERSION],ADVANCED=[ADVANCED],parmsetting=OPTIONSEXIST"/&gt;
      &lt;CustomAction Id="OptionsFileFound.Get" BinaryKey="CustomActionBinary" DllEntry="OptionsFileFound" Execute="immediate" HideTarget="no" Return="check"/&gt;  
  
      &lt;InstallUISequence&gt;
         &lt;!-- check if installation configuration file is present --&gt;
         &lt;Custom Action ="OptionsFileFound.Get" After="MigrateFeatureStates"&gt;&lt;/Custom&gt;
         &lt;Custom Action ="AbortError" After="OptionsFileFound.Get"&gt;NOT(OPTIONSEXIST="yes")&lt;/Custom&gt;
         &lt;Custom Action ="InstallDatabaseList.Get" After="OptionsFileFound.Get"&gt;&lt;/Custom&gt;
      &lt;/InstallUISequence&gt;
  </code></pre>
  
  <p>and now for the c# code</p>
  
  <pre><code>     [CustomAction]
      public static ActionResult OptionsFileFound(Session session)
      {
          FetchParms parmSet = new FetchParms(session);
  
          fileLocation = parmSet.GetActData("file");
          version = parmSet.GetActData("version");
          olympicInstall = parmSet.GetActData("advanced");
  
          session.Log(string.Format("*************************************************       Looking for options file at {0}, version number should be {1}", fileLocation, version));
  
          string parmSetting = parmSet.GetActData("parmsetting");
  
          if (File.Exists(fileLocation))
          {
              fileExists = true;
              session.Log("*************************************************                  found xml options file");
              LoadXmlToDictionary(fileLocation, session);
              session.Log("*************************************************                  loaded xml options file");
          }
          else
          {
              fileExists = false;
          }
  
          session[parmSetting] = fileExists ? "yes" : "no";
  
          parmSet.Dispose();
          parmSet = null;
  
          return ActionResult.Success;
      }
  </code></pre>
  
  <p>// fetch parms class here </p>
  
  <pre><code>     public FetchParms(Session session)
      {
          session.Log("*************************************************  creating parameter dictionary");
          session.Log("*************************************************  session data = " + session.CustomActionData.Count.ToString());
          CustomActionData parmSets = session.CustomActionData;
          string parmString = parmSets.ToString();
          session.Log("************************************************* passed custom action data = " + session.CustomActionData.ToString());
          string[] eachParm = parmString.Split(new char[] { ';', ',' }, StringSplitOptions.RemoveEmptyEntries);
  
          foreach (string theParm in eachParm)
          {
              string[] theOptions = theParm.Split(new char[] { '=' });
  
              this.parmList.Add(theOptions[0], string.IsNullOrEmpty(theOptions[1]) ? string.Empty : theOptions[1]);
          }
      }
  </code></pre>