2012-03-23 11 views
1

まずは、これが誰かに分かりませんと私に教えてください。WIXインストーラを複数の場所にインストールしてからパッチを適用する

これは私のシナリオです...と私はそれを信じて潜在的に簡単です。のは、私は私のインストーラがインストールにシナリオを持っていたとしましょう:

Program Files/MyProduct/Development 

はまた、私は同じインストーラがインストールに持っていると思った:

Program Files/MyProduct/Test 

これはWIXで可能ですか?

さらに、もしそうなら、どうすればパッチを当てることができますか?

答えて

2

あなたが指を入れようとしているものは、複数のインスタンスインストーラと呼ばれます。私はInstallShieldでWiXとMajor/Minorのアップグレードではなく、パッチの代わりにInstallShieldで多くの作業を行ってきました。ヤンはブログ記事を書くなど、WiX側でより多くのことを行った。

しかし、それは簡単ではないことに注意してください。 :-)

Revisited: Multiple Instance installations and patches

+0

お返事ありがとうございます!ですから、これを行うためには、インストールの回数に基づいて製品IDをハードコードする必要がありますか?ユーザーが潜在的にX個のコピーを異なるディレクトリにインストールする可能性があるので、私はその情報を前面に持っていません。理にかなっている? – aherrick

+1

現実には、インスタンス変換の数をX世代前に設定し、それがユーザーの99%に十分であると仮定するか、実行時に+1変換を生成するブーストラッパー(EXE)のより複雑なストーリーを思いつきます。それはできますが、インフラストラクチャははるかに高く、最初の話では十分満足できない人はいませんでした。たとえば、SQLサーバーでも、マシンごとに50インスタンスの制限が設定されます。 –

+0

エンド・ユーザーが複数のインスタンスを簡単にインストールできるようにする何らかのラッパーを(多分C#/ WinFormsに)書いていますか?私は、エンドユーザーが変換などについて知る必要があるとは思わないでしょう。 – aherrick

0

従来INSTALLDIRまたはINSTALLLOCATIONは、コマンドラインまたはbootstapper経由で設定することができますパブリックプロパティです。例えば:

msiexec /i setup.msi INSTALLDIR="C:\Program Files\MyProduct\Test" 
0

以下は、あなたがサイドバイサイドをインストールできるようにする必要があり、私はあなたがこのアプローチに非常に慎重であり、唯一の開発目的のためにこれを使用する必要があることを示唆しています。あなたは(MyApplicationを上記のように示される)プロジェクトを参照している必要があります動作するように、このためのよう

<?xml version="1.0" encoding="UTF-8"?> 

<?if $(var.MyApplication.Configuration) = Debug ?> 
<?define UpgradeCode = "<INSERT-DEVELOPMENT-GUID-HERE>" ?> 
<?else ?> 
<?define UpgradeCode = "<INSERT-RELEASE-GUID-HERE>" ?> 
<?endif ?> 

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
    <Product Id="*" Name="SetupProject1" Language="1033" Version="1.0.0.0" Manufacturer="SetupProject1" UpgradeCode="$(var.UpgradeCode)"> 

このアプローチは、参照先プロジェクトのconfiguratuionを使用しています。これにより、デバッグ用にコンパイルするときに別のアップグレードコードを持つインストーラが作成されます。

次に、@ KMorazで説明されている方法で展開する必要があります。

関連する問題