ディレクトリ全体またはプロジェクト出力をWiXパッケージに追加する方法
-
03-07-2019 - |
質問
VS統合セットアップからWiXに切り替えることにしました。
ただし、現在行っているのは、プロジェクト出力ファイルをセットアッププロジェクトの入力として使用することです。これにより、アプリケーションファイルをディレクトリ(イメージ、サンプル、その他のリソース用)に簡単に追加でき、これらのファイルはビルド時に自動的にセットアップに追加されます。
WiXで同様の機能を見つけることができませんでした。 WiXは、ディレクトリとファイルごとに1つのディレクトリエントリと1つのファイルエントリを必要とするようです。このため、ファイルが追加されるたびにWiXソースを変更する必要があります。これは、非常に多くのファイルがあるため、私の目には禁止です。
WiXでそれを統合する方法はありますか、candleを呼び出す前にWiXソースを作成する独自のタスクを作成する必要がありますか?
解決
WiX 2.0では、獣脂は非常に限られています。パラフィンとゼニアオイは追加機能を提供します。 WiX 3.0の場合、熱は獣脂と同じ機能を提供しますが、少し改善されています。
私の場合、mallowソースを使用し、少し変更して使用しました。これは、パラフィンが3.5バージョンの.Netを必要とするためです。
を使用できます。 WiXフラグメントを生成するまたはParaffinツール: はじめに、 WiXの痛み、 より良い獣脂、パラフィン、 ダウンロード、 WiX 3.0のパラフィン
他のヒント
この目的のために、WIX 3.5でheat.exeを使用しています。前回チェックしたとき、ドキュメントは3.5リリースでは最新ではなかったので、それを維持してください念頭に置いてください。
例を次に示します。
" $(WIX)bin \ heat.exe" dir " $(SourcePath)" -cg MyFiles -gg -scom -sreg -sfrag -dr INSTALLDIR -out" $(ProjectDir)Fragments \ FileFragment.wxs" -var wix.InstallerPath
MapGuide Open Sourceプロジェクトは現在、John Robbinsの他の人が指摘しているように、Paraffin 3.0 。
基本的に、特定のリリースバージョンで初めて、" 生成"ソースフォルダーの新しい.wxsファイルを作成し、それぞれに固有のオプションを指定するアクション。
同じバージョンの後続のビルドでは、" 再生"アクションが呼び出され、追加された新しいファイル/ディレクトリで.wxsファイルが更新されるようにします。
Heat v3では、ブライアンロジャースが書いた。静的なGUIDを維持することでParaffinがより明示的にこれを行う方法にはまだ満足していますが、現在のHeatは適切なオプションのように見えます。
さらなる調査の後、まさにそれを行うtallow.exeと呼ばれるバイナリが含まれているようです。再帰的にファイルを検索して、ディレクトリからフラグメントを作成します。
WIXの使用中、一度にファイルのディレクトリ全体を追加できる機能に出会ったことはありません。これは、特定のファイルを使用できる方法が多数あるためです(そのフォルダー内の特定のファイルを後で参照するかどうかはシステムにわからないため、それらを知る必要があります)。また、インストール自体はかなり具体的である必要があるためです。
それは、ディレクトリ構造のコンテンツを解析した後、WIX XMLファイル(またはその一部)を生成するWIX用の独自のフロントエンドを書くことを止めるものではありません。それは基本的に私が仕事で使用するシステムの1つが行うことです。これは、コードまたはテキストファイル生成ユーティリティと同じ考えです。ツリーを横断して、適切なテキストを生成するだけです。
編集:そのようにして、WIXを「低レベル言語」と見なすことができます。セットアップを定義し、ユーティリティを「高級言語」として定義します。作成にヘルプが必要な場合はお知らせください。
また、VStudioのカスタムビルドステップにこのユーティリティを追加することにより、ビルドプロセスの一部としてWIXファイルを生成することができます。そうすれば、実際に「保存されたWIXファイル」を持っていません。誰でもビルドすると、システムは最後にビルドするだけで、ビルド後のステップで新しいファイルが自動的に考慮されます。