2

すべてのプロジェクトを 1 つずつ Installshield から Wix に移行中です。env 固有のファイルを処理する最善の方法を見つけたいと考えています。

現在のプロセスは次のとおりです。Installshield を使用して、ベース MSI と変換ファイルを作成します。これにより、ベース MSI と、現在のディレクトリに存在するファイルを含むディレクトリ構造がインストールされます。もちろん、私のソース管理では、環境ごとに個別の構成ファイルがあり、展開スクリプトが適切なファイル セットを選択してステージング場所に配置します。

たとえば、現在のディレクトリは次のようになります。

サンプル.msi

サンプル.mst

test\apps\docs\global.config

test\files\docs\global.config

sample.msi がインストールされ、上記のディレクトリ構造がターゲットの場所にコピーされます。アンインストール中に、ディレクトリ構造も削除されます。

CopyFile 要素を使用してこの動作を再現しようとしましたが、アンインストール中にコピーされたファイルが残り、削除されません。これを達成する別の方法はありますか?

私たちの梱包方法が、私たちの要件を回避するための最良の方法ではないかもしれないことを理解しています. 誰かがこれを行うより良い方法を持っている場合は、私に知らせてください。

私はまだ Wix に非常に慣れておらず、wix 拡張機能をまったく見ていないので、他に何があるかわかりません。

いつものように、どんな助けも大歓迎です。

4

1 に答える 1

1

これらのファイルは本当に msi から分離する必要がありますか? wix を使用すると、それらをすべて msi に入れて、設定プロパティやカスタム アクションの使用などの特定の条件に基づいてインストールできます。そのようにすると、msi でディレクトリを作成してファイルをコピーし、アンインストール時にそれらを削除するのがかなり簡単になります。

条件は次のようになります。

<Component Id='MyComponent' Guid='PUT-GUID-HERE'>
  <Condition><![CDATA[YOUR-PROPERTY = "SOME_STRING"]]></Condition>
 <File Id='readme' Name='readme.txt' DiskId='1' Source='readme.txt' />
</Component>

Wix の CustomAction は .net dll にすることができます。マニュアルでは、これがどのように行われるかを説明しています: カスタム アクションの追加

WIX Toolkit がインストールされている場合は、Custom Action Project.

于 2012-04-03T22:40:11.973 に答える