MS VC 2008 x64 Redistributable の特定のバージョンを必要とする WIX を使用して MSI を作成しています。MSI も x64 ベースの製品用です。
vcredist_setup.exe
必要な再配布可能ファイルの 64 ビット バージョン用の Microsoft があります (vc90redist_x64.exe
参照用に名前を に変更しました)。
バイナリを定義するために使用している WiX XML は次のとおりです。
<Binary Id='_VC_X64_REDIST_' SourceFile='redist\vc90redist_x64.exe' />
そしてカスタムアクション:
<CustomAction Id='_INSTALL_REDIST_'
BinaryKey='_VC_X64_REDIST_'
ExeCommand='/q /l c:\temp\vc.log'
Execute='deferred'
Return='asyncWait' />
注: 「/lc:\temp\vc.log」を追加して、EXE ファイルがインストールを試行する段階に達しているかどうかを確認しました。
注: と を試しReturn='check'
ましExecute='Immediate'
た。
そして、カスタムアクションを呼び出します..
<InstallExecuteSequence>
<Custom Action='_INSTALL_REDIST_' After='InstallFiles'>
NOT Installed
</Custom>
</InstallExecuteSequence>
注: さまざまな After/Before 値を試しましたが、上記の値がログ ファイルで最良の結果を示しているようです! しかし、まだインストールされていません。
インストール MSI ファイルを実行すると、製品はインストールされますが、再配布可能ファイルはインストールされません (つまり、C:\temp\vc.txt
作成されません。後で再配布可能ファイルを手動で実行すると、インストールするように求められます。[プログラムの削除] にエントリがありません)。 ' リスト)。
上記の設定を使用して、実行すると次のようになります
'msiexec /i my.msi /l*v log.txt'
ログの抜粋を次に示します (完全な行を表示するには、右にスクロールします)。
Action ended 10:54:27: InstallFiles. Return value 1.
MSI (s) (64:E8) [10:54:27:655]: Doing action: _INSTALL_REDIST_
MSI (s) (64:E8) [10:54:27:655]: Note: 1: 2205 2: 3: ActionText
Action start 10:54:27: _INSTALL_REDIST_.
Action ended 10:54:27: _INSTALL_REDIST_. Return value 1.
...
MSI (s) (64:E8) [10:54:50:905]: Executing op: ActionStart(Name=_INSTALL_REDIST_,,)
MSI (s) (64:E8) [10:54:51:233]: Executing op: CustomActionSchedule(Action=_INSTALL_REDIST_,ActionType=1154,Source=BinaryData,Target=/q /l c:\temp\vc.log,)
...
MSI (s) (64:E8) [10:54:51:889]: Executing op: ActionStart(Name=PublishFeatures,Description=Publishing Product Features,Template=Feature: [1])
MSI (s) (64:E8) [10:54:51:889]: Executing op: FeaturePublish(Feature=Complete,,Absent=2,Component=<VERY LONG BINARY ASCII LOOKING THING>
... 1: _INSTALL_REDIST_ 2: 1631
...
そして、これがログでの _INSTALL_REDIST_ の最後の言及です。
この問題を解決するにはどうすればよいですか?
(私は Stack Overflow とほとんどのWiXリファレンスとブログを精査しましたが、うまくいきませんでした)