2011-04-18 18 views
6

He leído How do I pass msiexec properties to a WiX C# custom action?, pero eso no respondió mi pregunta, o tal vez simplemente no veo lo que estoy haciendo mal. Mi paquete de instalación no se puede instalar, y los registros dicen que mi propiedad no se encontró en la colección de acciones personalizadas. Mi código es:no puedo pasar propiedades a la acción personalizada de WiX

<CustomAction Id="SetCustomActionDataValue" Return="check" Property="Itp.Configurator.WixCustomAction" Value="G=G2" /> 
    <CustomAction Id="CreateDatabase" BinaryKey="Binary1" DllEntry="CreateDatabase" Execute="deferred" Return="check" /> 
    <InstallExecuteSequence> 
     <Custom Action='SetCustomActionDataValue' After="InstallFiles"/> 
     <Custom Action='CreateDatabase' After="SetCustomActionDataValue"> 
      NOT Installed AND NOT PATCH 
     </Custom> 
    </InstallExecuteSequence> 

Y código dentro de la acción personalizada es:

string Property1 = session.CustomActionData["G"]; 

Respuesta

6

El nombre de la propiedad en su primer elemento debe ser exactamente el mismo que el nombre de la acción personalizada diferida que' me gusta pasar el valor a. Entonces, si la acción diferida es CreateDatabase, entonces el primer elemento debería verse así:

<CustomAction Id="SetCustomActionDataValue" Return="check" Property="CreateDatabase" Value="G=G2" /> 
Cuestiones relacionadas