2016-09-13 1 views
0

Ich beginne mit WiX und ich habe einige Probleme, um ExitDIalog anzupassen.Aufruf von benutzerdefinierten exe in ExitDialog

Zuerst, was ich will:

  • ich ein Setup für meine Anwendung erstellen möchten

  • Nach dem Setup ich 2 Möglichkeiten vorschlagen möchten:

    • Anwendung starten (application.exe neu installiert)

    • Starten eine optionale Setup (meine Anwendung erfordert einig Laufwerk zu installieren, je Kamera des Benutzers)

  • Die optionale Setup ist eine .exe. Es sollte neben setup.msi platziert werden, aber nicht in meinem Anwendungsordner kopiert werden.

I Verzeichnisse erstellt:

<Fragment> 
    <Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="ProgramMenuFolder"> 
     <Directory Id="ApplicationProgramsFolder" Name="$(var.compagny)"/> 
    </Directory> 
    <Directory Id="DesktopFolder" SourceName="Desktop"/> 
    <Directory Id="ProgramFilesFolder"> 
     <Directory Id="COMPAGNYFOLDER" Name="$(var.compagny)"> 
     <Directory Id="INSTALLFOLDER" Name="$(var.product)">    
      <Directory Id="fr" Name="fr"/> 
     </Directory> 
     </Directory> 
    </Directory> 
    </Directory> 
</Fragment> 

Wie kann ich einen Verweis auf meine .exe hinzufügen? Ich tat:

<Component Id="ProductComponent" Guid="{2C26B191-6654-4405-8E78-F8B6EFEDC9FC}" Directory="INSTALLFOLDER"> 
    <File Id="uEye64_47100_WHQLexe" Source="./Resources/uEye64_47100_WHQL.exe" KeyPath="yes" Checksum="yes" Compressed="no" Vital="no"/> 
</Component> 

Aber die uEye64_47100_WHQL.exe Datei in install kopiert wird (ich will nicht) und das Setup den Pfad mischen mit [Anwendung]/bin/Veröffentlichung (weiß nicht mit). In der Protokolldatei befindet sich:

Failed to open the file:C:\dev\MyApplication\main\SetupProject\bin\Release\MyCompagny\MyProduct\uEye64_47100_WHQL.exe for computing its hash. Error:3

Und ich rufe die EXE wie folgt aus (diese Datei benötigen erweiterte Rechte)

<!-- Set checkbox for launch install uEye --> 
<Property Id="WIXUI_EXITDIALOGUEYECHECKBOXTEXT" Value="Launch install uEye"/> 
<CustomAction Id="SetExecUEye" FileKey="uEye64_47100_WHQLexe" ExeCommand="" Return="asyncNoWait" Impersonate="no" Execute="deferred"/> 

<UI> 
    <UIRef Id="WixUI_Custom"/>  
    <Publish Dialog="MyExitDialog" 
      Control="Finish" 
      Event="DoAction"     
      Value="SetExecUEye">WIXUI_EXITDIALOGUEYECHECKBOX = 1 and NOT Installed</Publish> 
</UI> 

Wie soll ich meine definieren uEye64_47100_WHQL.exe nach der Installation aufgerufen werden, aber nicht kopiert in INSTALLFOLDER?

Antwort

2

Wenn Sie die Datei nicht zum Installationsort kopieren möchten, führen Sie sie einfach aus. Sie können sie als binäre Quelle anstelle der Komponente einfügen. Auf diese Weise ist es im Installationsprogramm gepackt, wird aber nicht bei der Installation bereitgestellt (wahrscheinlich nur in einem temporären Ordner).

<Binary Id="uEye64_47100_WHQLexe" SourceFile="./Resources/uEye64_47100_WHQL.exe" /> 
<CustomAction Id="InstalluEye64exe" BinaryKey="uEye64_47100_WHQLexe" ExeCommand="" Execute="deferred" Return="ignore" Impersonate="no"/> 
+0

Sie sparen meinen Tag! Wix macht mich verrückt. Ein Fehler zu entfernen (ErrorCode 2762) und meine Einrichtung wird durchgeführt. –

+0

Ist es möglich, die Binärdatei so einzustellen, dass sie nicht komprimiert und nicht vital ist? Meine setup.msi ist 4ko, die optionnal.exe ist 150Mo. Als 'Binary' zu deklarieren, mache meine setup.msi 154Mo. Zumindest muss mein Setup ohne diese Datei funktionieren (nur das Kontrollkästchen wird fehlerhaft) –

Verwandte Themen