2011-01-04 7 views
5

にインストールされます、私は複数の環境を持っている、構築、テスト、PRODなどWIX複数のmsiで同じファイルのコピーが、一方だけが

私は、複数のマシンを保持することが可能にWiXでの単一のインストーラを作成したいのですが.configファイル。コマンドラインで渡されたフィーチャ値に基づいて、1つのファイルのみがインストールされます。

conceptualyそれは簡単に聞こえるが、私は述べてICE30のエラーを受け取ること

「ICE30:ターゲット・ファイル 'btfrgsa_ | [FILENAME]は' 二つの異なるコンポーネントによって '[TARGETDIR] \ NETFRAMEWORK40FULLINSTALLROOTDIR64 \ CONFIG \' にインストールされていますLFNシステムでは: 'MachineConfigs.WS'と 'MachineConfigs.APP'。これはコンポーネント参照カウントを中断します。 "

これを行うにはどうすればよいでしょうか?

おかげ

Semaj

+0

条件文を調べてみましたか。それはあなたが選んだ答えよりも簡単かもしれません。 – Adkins

答えて

6

アプローチのカップル:

  1. CopyFileメソッドを使用し、別の名前(1.config、2.config)のファイルといくつかの機能やコンポーネントを作成し、要素を使用して、x.configを実際のファイル名にコピーします。 )これにより、x.configとreal.configがデプロイされますが、無害でアンインストールが正常に機能します。

  2. xpathsを使用してx.configsの違いを特定し、インストール時にXMLの変更を適用して適用します。

+0

私はノーを使うことができると思います。 1.ありがとうございます、Semaj – semaj

+1

+1 XMLConfigを使用する場合は、より多くの作業が可能ですが、長期的にははるかにクリーンです。 –

+0

私はこれがwixのタグ付けされていることを認識していますが、InstallShieldの番号1の同様のソリューションはありますか?または、このソリューションで使用されているmsiテーブルの説明(MoveFile?)も同様です。 – JohnZaj

関連する問題