2009-11-13 17 views
6

ユーザーが1台のPCに複数のアプリケーションをインストールできるようにしたい。 1つはテスト用、もう1つは本番用システム用です。インストールはVisual   Studio   2005に直接作成されたMSIファイルです。これを有効にする方法はありますか?ユーザーがMSIファイルの複数のコピーをインストールできるようにするにはどうすればよいですか?

インストールを生成するために他のツールを使用しています。もし私がしなければならない場合はOcra.exeを直接使用していますが、少なくとも今のところInstallShieldは質問の対象外です。

+2

本番サーバー上でテストしないでください。または:テストサーバーからライブを実行しないでください。 –

+2

完璧な世界では、顧客が何をするかです。しかし、顧客の規模が小さく、管理しなければならないサーバーの数を最小限に抑えたいという世界では、同じサーバー上で実行することは不合理ではありません。 –

+0

ここでは誰もセヴァーについて話していません。彼は、ユーザが自分のPCに2つのバージョンの製品をインストールすることについて話している。 – BrainSlugs83

答えて

5

slugsterが述べたように、あなたはPropertyテーブルに製品コードを更新する必要があります。 Summary Stream Informationのパッケージコードも変更する必要があります。 MSIを変更する最も簡単な方法は、VBScriptでオートメーションを使用することです。

を、パッケージコードを変更するには、製品コードに

cscript WiRunSQL.vbs your.msi "UPDATE Property SET Value='{AAAAAAAA-BBB1-CCCC-DDDD-EEEEEEEEEEEE}' WHERE Property='ProductCode'" 

を変更するには:次のようにあなたのMSIを変更できるようになります

WindowsインストーラーSDKが有用scriptsWiRunSQL.vbs、WiSumInf.vbs)が含まれてい

cscript WiSumInf.vbs your.msi 9={AAAAAAAA-BBB2-CCCC-DDDD-EEEEEEEEEEEE} 

新しいコードは有効な一意のGUIDである必要があります。

+0

製品コードを更新するだけでは十分ではありません。これを実行して新しいMSIを実行すると、以前のインスタンスを修復/削除するように要求されます。新しいインスタンスをインストールしたい。これを動作させるために他に何が変わる必要がありますか? –

+0

実際にパッケージコードも更新する必要があります。上記の私の更新答えを見てください。 – KMoraz

2

あなたはそれが実行される前に、MSIファイルに適用されるトランスフォーム(.mst)を、オーサリングする必要があります。この変換は、製品コードの変更を含むさまざまなことを行うことができます。この製品コードを変更することで、同じ製品の複数のインスタンスをインストールすることができます。これは、Windowsインストーラーには異なる製品と思われるためです。

この変換機能は、Windowsインストーラエンジンにネイティブです。つまり、これらのファイルを自分で作成することができます。InstallShieldのような製品で簡単に作成できます。他のMSI作成製品にはおそらく同じ機能があり、買い物をすることができます.Windows Installer SDKには、これを行うためのツールが用意されています(実際には見たことがない、InstallShieldを使用しています)。

Windows Installer Guide, Database Transformsを使用して開始することができます。

1

Installing Multiple Instances of Products and Patches上のMicrosoftのマニュアルを参照してください。

メモリから同じサーバー上で複数のWebサイトをインストールするには、WiXのを使用しているときにこれをやろうとしている誰かとの議論on the WiX list先月がありました。あなたは、関連するスレッドを見つけることができる場合がある私より応答を通じていくつかのより多くがあるはずです:)

関連する問題