2012-01-25 9 views
4

通常のソースコードプロジェクトでは、プロジェクトをビルドするようVisual Studioに依頼すると、期限が切れていると判断された場合にのみビルドされます。 (/buildコマンドラインスイッチのドキュメントでこれが確認されています)。Visual Studio 2008は常に最新の状態でもセットアッププロジェクトを作成しますか?

ただし、セットアッププロジェクトの場合、依存関係が最新であるかどうかにかかわらず、Visual Studioは常にビルドしているようです。これは、セットアッププロジェクトに別のプロジェクトのプライマリ出力のみが含まれる単純なシナリオでも発生します。

なぜセットアッププロジェクトはこのように動作しますか?この動作を変更する方法はありますか?

+1

セットアッププロジェクトを使用しないもう1つの理由。 FWIW、Microsoftはそれらを殺したし、彼らはVS2012にいません。あなたがもっと必要な場合を除き、InstallShield Limited Editionが推奨代替品です。 WiXは別のオプションです。 –

+0

@ChristopherPainter、これは、VSセットアッププロジェクトの有効期限に関する良い思い出です。 InstallShield LEプロジェクトの動作が異なるかどうか知っていますか? –

+0

正直、私は知らない。私は通常、インストーラを別のソリューションにとどめています。ソリューションに含まれていた場合は、インストーラが何か変更された場合、インストーラがおそらくビルドする必要があるものすべてをパッケージ化しているので、通常、それは理由があります。ほとんどの開発者はそれを処理したくないので、それを別個のSLNに入れる理由があります。 –

答えて

2

セットアッププロジェクトは実際にはパッケージユーティリティです。すべてのプロジェクトをチェックし、必要に応じてビルドしますが、実行するたびに新しいパッケージが作成されます。私が見ることができるこの動作を変更する方法はありません。

私は通常、セットアッププロジェクトをビルドしないように私のビルド - コンフィギュレーションマネージャを設定します。セットアップを作成/更新したいときにビルドを実行します。

+0

確認していただきありがとうございます。私たちの特定のケースでは、セットアッププロジェクトを構築する毎日のビルドに使用するNAntスクリプトがあります。また、私たちの開発マシンではNAntスクリプトを使って完全なシステムビルドを実行しています。チェックインする前にマシン上で複数回実行する必要がある場合に備えて、完全に "インクリメンタル"にするのが良いでしょう。 .MSIがそれに含まれている実行可能ファイルと比較して最新のものかどうかを確認してください。これにより、スクリプトを複数回実行するときに.MSIを再構築することを避けることができます。 –

+1

私はあなたがそれらの状況のた​​めにインストーラを除外するソリューション構成を作れると思うでしょう。たとえば、リリースではインストーラをビルドしますが、デバッグは行いません。 –

関連する問題