私がしていること
Visual Studio2010にASP.NetWebアプリケーションとWiXセットアッププロジェクトがあります。セットアッププロジェクトのビルド前イベントとして次のHEATコマンドを設定すると、Webアプリケーションを明示的に収集できます。
「%WIX%\ bin \heat.exe」プロジェクト「$(SolutionDir)Application.WebUI \ Application.WebUI.vbproj」-o「$(ProjectDir)ProjectOutputContent.wxs」-pogコンテンツ-ag-templateフラグメント-nologo-directoryid RUNTIMEFOLDER
「%WIX%\ bin \heat.exe」プロジェクト「$(SolutionDir)Application.WebUI \ Application.WebUI.vbproj」-o「$(ProjectDir)ProjectOutputBinariesAndSymbols.wxs」-pogバイナリ-pogシンボル-ag-テンプレートフラグメント- nologo -directoryid BINFOLDER
RUNTIMEフォルダーとBINFOLDERは、メイン製品のWXSファイルで宣言的に設定したディレクトリであることに注意してください。
なぜ私はそれが好きではないのですか
セットアッププロジェクトをビルドする前に、HEATで生成されたフラグメントWXSファイルをチェックアウトする必要があるため、このアプローチは面倒です。もう1つの考慮事項は、これがWebアプリケーションであり、バイナリとシンボルをコンテンツとは別のディレクトリ(bin)にドロップする必要があることです。
私が目指していること
Wixセットアッププロジェクト内でプロジェクト参照を使用し、HarvestプロパティをTrueに設定するだけです。次に、BinariesContentSatellitesを収集してフラグメント内の必要なアイテムを取得し、メイン製品のWXSで参照できる単一のディレクトリIDを設定できます。問題は、これにより、コンテンツ、バイナリ、およびシンボルが同じフォルダーに配置され、後者の2つがネストされたbinフォルダーに配置されることです。このプロジェクト参照を2回追加することはできません。それぞれ、収穫オプションが異なります。
私の質問
自分が求めていることを実行する方法はありますか、それともビルド前のイベントを維持する必要がありますか?余談ですが、ビルドイベントを使用せずに、フラグメントを手動で1回収集してから、必要に応じて再収集することを検討しました。私はそのアプローチを避けたいと思います。