0

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リファレンスとブログを精査しましたが、うまくいきませんでした)

4

0 に答える 0