2016-09-13 2 views
0

私はWiXを使い始めていますが、ExitDIalogをカスタマイズするにはいくつかの問題があります。ExitDialogでカスタムEXEを呼び出す

  • 起動アプリケーション(:私は2つの選択肢を提案したいセットアップした後、私のアプリケーション

  • のためのセットアップを作成したい

    • :私が欲しいものをまず

      application.exeが新しくインストールされた)

    • 起動オプションのセットアップ(私のアプリケーションは、ユーザーのカメラに応じていくつかのドライブをインストールする必要があります)

  • オプションの設定は.exeです。 setup.msiの隣に配置する必要がありますが、自分のアプリケーションフォルダにはコピーしません。

私はディレクトリを作成しました:

<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> 

私は.exeファイルへの参照を追加できますか?

<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> 

しかし uEye64_47100_WHQL.exeファイルがINSTALLFOLDERにコピーされた(私はしたくない)と、セットアップは、[アプリケーション]/binに/リリース(と分からない)でパスを混ぜている:私はやりました。

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

そして私は、私は私のuEye64_47100_WHQL.exeはセットアップが、ノーコピーした後に呼ばれるように定義する必要がありますどのように

<!-- 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> 

(このファイルはシステム特権が必要です)このよう.EXEを呼び出す:ログ・ファイルではありINSTALLFOLDER

答えて

2

ファイルをインストール場所にコピーしたくない場合は、実行するだけで、コンポーネントではなくバイナリソースとして含めることができます。この方法では、インストーラーにパックされていますが、インストール時には展開されません(おそらく、一時フォルダーのみ)。

<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

あなたは私の一日を保存します!ウィックスは私を狂ってしまうだろう。削除する1つのエラー(ErrorCode 2762)とセットアップが完了します。 –

+0

バイナリを圧縮せず、重要ではないように設定することはできますか?私のsetup.msiは4ko、optionnal.exeは150Moです。バイナリとして宣言すると、setup.msiは154Moになります。少なくとも私の設定はこのファイルなしで動作していなければなりません(チェックボックスだけがエラーになります) –

関連する問題