2012-04-03 9 views
1

WiXについて質問があります。しかし、私の状況をまず説明しましょう: 私はVS2010ソリューションを持っており、WiX(Votive)プロジェクトを追加してセットアップを行いました。私はTFSビルドサーバーでこのセットアップを構築しています。残念ながら、私のすべてのファイル(* .dll、* .sql、* .msi、* .whatever)は、同じOutput-Pathに盲目的にコピーされます! msi、bat、およびsqlファイルを別々のフォルダに移動するために、Move-Taskを使用してmsbuildターゲットをSetup.csprojファイルに追加しましたが、残念ながらこれはTFSビルドでは機能しません。ビルドドロップパスでWiX出力のフォルダを作成する

ここに問題があります(imho): 私がヴォーティックでやっていることは、早い段階からです。私はフォルダを作ってファイルを移動することができますが、csprojファイルに書き込むものは、TFSがすべてのバイナリをランダムに取り出してドロップ位置に配置する前に実行されます。私が解決しようとした方法

  1. 私は移動またはコピーコマンドのwix2010.targetsファイルを検索します。はbuild_dropに移動されましたが、見つかりませんでした。
  2. 私はビルドプロセスのテンプレートを見ましたが、私は言語や構文が分かりません。そこには何か関係はありますか?
  3. Build DefaultsのBuild定義では、 "このビルドは出力ファイルをドロップフォルダにコピーします"というチェックボックスがあります。ここでドロップ位置を追加する必要があります。私がここで変えることができるものはありますか?

私の質問: はどのように私はWiXのセットアップファイルとサブフォルダを作成して、ビルドのTFS上でそれに特定のファイルを移動することができますか?

私はあなたが助けてくれることを願っています! ありがとうございました!

答えて

1

ファイルを移動するだけで、インストーラがどこでファイルを取得するのかがわかる場合は、インストーラにソースファイルの場所を示すconfig.wxiファイルを追加する方法もあります。このhereについて詳しく読むことができます。この方法では、インストーラのコンパイル時にconfig.wxiを変更して、新しいビルド場所またはドロップ先を指すようにする必要があります。 MSBuildに慣れている場合は、があり、簡単にWiX .wxiファイルを変更するのに役立ちます。これを行う独自のスクリプトを書くこともできますが、ビルドを実行するビルド定義からスクリプトやビルドタスクを起動する必要があります。

チームビルド2010を使用していて、ビルドプロセス中にファイルやフォルダをコピーするだけの場合は、ビルドプロセスを実行する.xamlチームビルドの定義を変更する必要があります。 Ewald HofmanはCustomizing Team Build definitionsの優れたシリーズを書いた。

1

私はあなたの質問に従っているかどうかはわかりませんが、DLL/EXE/et allとMSIがすべて1つのディレクトリにアーカイブされていると不平を言うと思います。はい、私はこれも好きではありません。

私が行うことは、アプリケーション、マージモジュール、セットアップというソリューションプラットフォームを作成することです。その後、私はTFSにビルドを指示します:

リリース|アプリケーション リリース|モジュールをマージする(オプション、ビルドする必要はありません) リリース|セットアップ

これは

をリリース\私のDLL私のマージモジュールのすべてのセットアップを\にアーカイブするモジュール\リリースと私のMSIをマージ\にアーカイブするために、アプリケーションの\リリース\にアーカイブするコンテンツ/ EXE /のすべての原因これは私のためにうまくいく。

関連する問題