2012-04-03 6 views
2

私はすべてのプロジェクトをInstallShieldからWixに1つずつ移行しています。env固有のファイルを扱う最良の方法を知りたいと思います。WIXを使ったenv特有のファイルの扱い

現在のプロセスは: InstallShieldを使用して、ベースのMSIと現在のディレクトリに存在するファイルを含むディレクトリ構造をインストールするTransformファイルを作成します。もちろん私のソース管理では、私は別の環境用の設定ファイルを用意しています。私の展開スクリプトは適切なファイルセットを取り出し、それらをステージング場所に配置します。

たとえば、次のように現在のdirは次のようになります。

sample.msi

ドキュメント\

テスト\ファイルをglobal.config \ドキュメント\

Sample.mstを

テスト\のアプリを\ global.config

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

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

私たちのパッケージングは​​私たちの要求を回避する最良の方法ではないかもしれないことを理解しています。誰かがこれを行うより良い方法を持っている場合は、私に知らせてください。

私はまだWixには新しく、Wix拡張のいずれも見ていないので、他に何があるのか​​分からないでしょう。

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

答えて

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> 

AのCustomActionは、.NET DLLすることができ、マニュアルでは、これがここで行われている方法について説明します。 Adding Custom Actions

あなたはWIX Toolkitがインストールされている場合Custom Action Projectを作成するだけです。

+0

yup。これはそれを行う方法になります。 MSIにファイルを埋め込む代わりに別の方法があるかどうかを知りたかっただけです。 – soothsayer

+0

さて、他の唯一の方法は、ネットワークからそれらのファイルを取得し、それらをディレクトリに配置し、アプリケーションがアンインストールされたときに同じCustomActionでそれらを削除するCustomActionを書くことです。 – shriek

+0

@Hitesh Savla:私の答えを編集しました – shriek

関連する問題