2011-06-20 10 views
7

私は、AppleのBonjourインストーラを独自のmsiインストーラにバンドルして、Bonjourを自動的にインストールします。誰もこれを前にした? msiインストーラは別のものを組み込んでから起動することができないので、簡単なことではありません。私は、2つのインストーラを順番に実行するには、何らかのバッチファイルが必要だと思いますか?アップルのWindows Bonjourインストーラをmsiにバンドルする

答えて

1

これはもう少し作業になりますが、アップグレードに問題が発生する可能性がありますが、Bonjour MSIを使用して暗闇で逆コンパイルすることができます。逆コンパイルされたMSIを、インストーラに含まれるMergeモジュールに変換すると、1回のインストールが可能になります。私はこれまでにいくつかのドライバのインストールを行ってきましたが、それは通常複雑ではありません。

+0

これはBonjourを配布するためのアップルのサービス条件に従って許可されていますか? –

+0

@Andrey - あなたが指摘しているとおり、おそらく違法かもしれないが、これは正しい答えではない。 bootstrapperに関する他の回答を確認してください:http://stackoverflow.com/questions/8727057/how-to-add-an-msi-file-to-my-installer Bonjour.msiでブートストラップする必要がありますBonjour64.msi –

+0

@SimonMourier実際には、彼らのサービス条件を読んだ後、これは本当に合法であるかもしれないと(私には)思われますか? –

1

ブートストラップが必要です。いくつか自由に利用可能なものがあります.WiXで開発されたBurnを含むものもあります。

9

インストーラでBonjourをインストールするには、ブートストラップを使用する必要があります。 WiX 3.6以降を使用している場合は、Burnを使用してパッケージバンドルを作成することをお勧めします。

私はBonjour SDKをダウンロードして7-zipで開くことでBonjourインストーラーを見つけましたが、SDKをインストールするとアクセスできます。

通常、これを行う方法は、各依存パッケージのセットアッププロジェクトに新しいソースファイルを追加して、そのロジックをメインアプリケーションの設定とは別に保つことです。

Bonjourパッケージは、オンザフライで取得するためのリモートペイロードとして一覧表示することも、セットアップに組み込むこともできます。この場合、(Compressed = "yes")でビルドする可能性が高くなります。 bonjourやパラメータに関連する余分な依存関係を追加する必要がある場合は、ここで定義することもできます。

<Fragment> 
    <!-- if a web link actually exists, I didn't find it... --> 
    <?define BonjourWebLink = "http://path/to/Bonjour.msi"?> 

    <PackageGroup Id="BonjourWeb"> 
     <MsiPackage Id="BonjourWeb" 
        Compressed="no" 
        DownloadUrl="$(var.BonjourWebLink)"> 
     </MsiPackage> 
    </PackageGroup> 

    <PackageGroup Id="Bonjour"> 
     <MsiPackage Id="Bonjour" 
        Compressed="yes" 
        SourceFile="path\to\Bonjour.msi"/> 
    </PackageGroup> 
</Fragment> 

メインバンドルでは、正しいパッケージグループへの参照を追加するだけです。

<Chain> 
    <PackageGroupRef Id="Bonjour"/> 

    <MsiPackage SourceFile="path\to\YourProduct.msi"/> 
</Chain> 

Bonjourは実行可能ファイルの代わりにMSIを使用するので、存在しているかどうかを検出するために何もする必要はありません。バーンがあなたのためにそれを処理します。実際には、WiXはあなたのバンドルがMSIから必要とする情報の大部分を収穫するので、これは残酷かもしれません。あなたはチェーン内のMsiPackage要素を直接入れることができます。

これを行うには、慎重にApple's termsをチェックしてください。

+0

私はこの答えは、最近多くの注目を得ている気づいたので、私はいくつかのより多くの情報とそれを更新してくださいと思いました。リンクの1つが死んでいた。私は実際にこれをテストしていませんが、それは私が入る方向です。問題がある場合は教えてください。私は答えを更新します。 –

0

Wix Burnは比較的安定しています。私はWix 3.8を使用しています。

Bonjour Installerの再配布が許可されている場合は、Wix Burnでインストーラを連鎖できます。インストーラのプリレクサイトとしてBonjourを指定する条件を指定することもできます。存在しない場合は、Bonjourがデプロイされます。それ以外の場合はスキップできます。

Burnを理解するために、このリンクをチェックすることができます。

http://wixtoolset.org/documentation/manual/v3/bundle/

関連する問題