2012-02-08 16 views
1

(InstallExecuteSquenceのInstallFilesの後など)製品のインストール中に、依存するMSIセットアップ(バイナリテーブルに保存)を呼び出そうとしています。このような私のWiXのコード(私はのWiX v3.5.2519.0を使用):最初のインストール時にMSIに応じて呼び出すカスタムWiXアクション

<Upgrade Id="{CB60C307-588D-47F5-87DD-7FDAE12434B0}"> 
    <UpgradeVersion Property="OTHERMSI" 
        Minimum="1.0.0" 
        Maximum="1.1.0" 
        IncludeMinimum="yes" 
        IncludeMaximum="yes" 
        OnlyDetect="yes"/> 
</Upgrade> 

<CustomAction Id="INSTALL_OTHERMSI" 
       Impersonate="yes" 
       Return="check" 
       Execute="immediate" 
       BinaryKey="Other.msi" 
       ExeCommand=""/> 

<Binary Id="Other.msi" 
     SourceFile="c:\temp\sources\Other.msi"/> 

<InstallExecuteSequence> 
    <Custom Action="INSTALL_OTHERMSI" 
      After="InstallFiles">OTHERMSI="" AND NOT PATCH AND NOT Installed</Custom> 
</InstallExecuteSequence> 

私は私のMSIは、それがカスタムアクション「INSTALL_OTHERMSI」まで、順を追って説明フ​​ァイルを実行します。しかし、常にエラーメッセージで失敗します。

このインストールを完了するために必要なプログラムを実行できませんでした。

私はブートストラップを使いたくないので、私は純粋なMSIが欲しいです。同様のインストール(セットアップ中にVisual Studio 2010 SP1をインストールするJetBrains ReSharperなど)が既にこのトリックを行っています。この問題を解決するにはどうすればよいですか?

答えて

1

まず、Windowsインストーラでは、2つのインストールを同時に実行することはできません。したがって、このアプローチはうまくいきません。必要なのはMSIチェーンです。 EmbeddedChainer要素を使用することができます

+0

右!一度に1つのMSIを実行することを忘れてしまった。興味深いのはEmbedededChainerですが、Windows Installer> = 4.5でサポートされています。現在私は2.0を使用しています。なぜなら私たちの製品インストールには本当に古いWindows OSに直面しているからです。しかし、将来的に考えるべき良い機能かもしれません。ありがとう! – moik

関連する問題