2013-06-11 4 views
6

最近、Microsoftは私が提供のVisual Studio 2012のコンパイラを使用して移動することができる当社のプロダクトマネージャーで言われてきたアップデート1のVisual Studio 2012でWindows   XPのサポートをドロップする彼らの決定を撤回:Visual Studio 2012コンパイラでWindowsインストーラ3.0を対象にすることはできますか?

  • 私たちは、当社のWindows   XPのお客様を引き続きサポートしてください。
  • Windows   XP SP3を超える追加の前提条件を導入していません(その理由は、一部のお客様と契約しているためです)。

VC2012 XPツールセットを使用するように私たちのソリューションを変換しようとしましたが、今はすべてコードの観点からうまく機能します。しかし、私たちのWiXインストーラプロジェクトは、VC2012ランタイムマージモジュールを追加しようとしていて、Windows Installer 4.5のみをサポートしているという事実を訴えていました。このバージョンのWindowsインストーラはWindows   XP SP3では使用できませんでした。したがって、当社製品をインストールするには、Windows Installer 4.5再頒布可能パッケージをインストールする必要があります。

この問題を回避し、Windowsインストーラー3.0をサポートする方法でこれらのマージモジュールを使用することは可能ですか?

<Package InstallerVersion="300" /> 

をしかし、マージモジュールを設定する私たちを必要として表示されます:

だから我々は、現在設定している私たちは外のWindows   XP SP3をサポートしていませんでした意味でしょう

<Package InstallerVersion="405" /> 

ボックス。 「Microsoft_VC110_ATL」モジュールをマージ高いインストーラを持つモジュールのマージ300の製品のインストールバージョンよりも大きい405のインストーラバージョンを有する:

警告LGHT1104:ここ

はWiXのからのエラーですバージョンにマージされている製品よりも、結果のmsiに無効な値が返される可能性があります。このマージモジュールを製品にマージするには、Package/@ InstallerVersion属性を405以上に設定する必要があります。

答えて

7

ご使用の製品にWindows Installer 4.5をインストールします。 Windows用It is available   XP SP2およびSP3結局のところ、VC 2012ランタイムには、Windows   XPのいずれかが付属していません。

MSIとして必要なマージモジュールを使用して製品をインストールできるという考え方に悩まされているかもしれません。 WiXのBootstrapperプロジェクト(WiX 3.6以降)では、一連のインストーラを簡単に作成し、1つのEXEファイルにバンドルすることができます。エンジン(Burn)は、必要な再起動も処理します。あなたが最近のバージョンのWiXをインストールしたなら、あなたはバーン・イン・アクションを見たことがあります。

このルートに行く場合は、MSIからマージモジュールを削除し、VC 2012 runtimeをチェーンに追加することもできます。

+0

Hmm。興味深いアイデアは、私はこれが可能であることを知らなかった。 – Benj

+0

prereq MSIを連鎖させることを強くお勧めします。サードパーティのマージモジュールは、ほとんどの場合常に最高の問題です。 –

0

あなたは、セットアップのために必要なWindowsインストーラを設定するPackage要素にInstallerVersion属性を設定する必要があります。

Ex。 for Windowsインストーラ

<Package InstallerVersion="300" /> 
+0

これは現在行っていることです。問題は、マージモジュールが300と互換性がないことです。質問を更新して少し明確にします。 – Benj

関連する問題