2009-07-26 2 views
3

Wie mache ich eine benutzerdefinierte Aktion, die auf eine Datei in der Befehlszeile verweist?Wie bekomme ich den Speicherort einer Datei in einem WiX-Skript

Ich habe die benutzerdefinierte Aktion Zugriff auf die MYSQL Eigenschaften korrekt, aber ich habe nicht die Beschwörung heraus den Pfad zu dem installierten SQL-Skript zuzugreifen.

Im Folgenden finden Sie die relevanten Abschnitte des WiX-Skripts. Ich versuche, die benutzerdefinierte Aktion auf den Pfad zu MYSQL_SCRIPTS-Datei verweisen.

<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="ProgramFilesFolder"> 
    <Directory Id="INSTALLLOCATION" Name="MyProgram"> 
    <Directory Id="DbSetupDir" Name="DbSetup"> 
     <Component Id="SqlScripts" Guid="MYGUID"> 
      <File Id="MYSQL_EXE" Source="mysql.exe" Vital="yes" /> 
      <File Id="MYSQL_SCRIPTS" Source="MYSQL_SCRIPTS.sql" Vital="yes" /> 
     </Component> 
    </Directory> 
    </Directory> 
</Directory> 

... 

<CustomAction Id='LaunchFile' 
    FileKey='MYSQL_EXE' 
    ExeCommand='--host=[MYSQL_SERVER] 
    -u [MYSQL_USERNAME] 
    -P [MYSQL_PORT] 
    --password=[MYSQL_PASSWORD] 
    -e [DbSetupDir]\ALS_Scripts.sql' 
    Return='check'/> 

Antwort

3

Verwenden Sie die [#MYSQL_SCRIPTS] conversion, wird dies auf den vollständigen Pfad dieser Dateien in Rüstzeit übersetzen.

<CustomAction Id='LaunchFile' 
    FileKey='MYSQL_EXE' 
    ExeCommand='--host=[MYSQL_SERVER] 
    -u [MYSQL_USERNAME] 
    -P [MYSQL_PORT] 
    --password=[MYSQL_PASSWORD] 
    -e [#MYSQL_SCRIPTS]' 
    Return='check'/> 
+0

Danke. Die Lösung funktionierte und die Verbindung war genau das, wonach ich suchte. –

Verwandte Themen