2010-12-03 9 views
1

ビルドがIDEかコマンドラインから実行されるかどうかによって、ビルドイベントバッチファイルの動作を制御することは可能ですか?IDEまたはコマンドラインでビルドした場合のVisual Studio Buildの動作が異なりますか?

私たちはいくつかのバージョンの製品を用意しています。これには、登録が必要なCOMオブジェクトが含まれています。このCOM登録は、それぞれのプロジェクトのカスタムビルドステップから呼び出されたバッチファイルによって行われます。

問題は、IDEの別のバージョンで作業しているときに、あるバージョンの自動ビルドをコマンドラインからバックグラウンドで実行すると、自動ビルドでは、COMオブジェクトが、 IDE。

したがって、ビルドがIDEで実行されるか、devenvを使用してコマンドラインから実行されるかによって、登録を行うかどうかを制御する方法がありますか?

ありがとうございました。

+0

バージョンAのコマンドラインビルドで、IDEからバージョンBのCOMオブジェクトを登録するのはなぜでしょうか。私が間違った質問を読まない限り、それは本当に意味をなさない。 – Peter

+0

はい、あなたはそれを間違って読んでいます。私は試して言い換えてみましょう:コマンドラインdevenvビルドを行うにはどうすればいいですか?ポストビルドステップでCOMを登録しないでください。そしてGUI IDEビルド - ポストビルドステップでCOMを登録しますか? – Armbie

答えて

0

私はVSがどのように動いているのか「知っている」ことを知らない。コマンドラインから実行されているかどうかにかかわらず、どこかにフラグが立っていないと驚くかもしれませんが、私たちはそれにアクセスできないかもしれません。

おそらく、これはビルド構成を使用して解決できます。コマンドラインからビルドする場合は、ビルド設定値をCOM登録手順を除外する設定に設定します。私は適切なビルド設定のテストをビルドバッチに書くことができると思う(私はVSが現在のビルド設定のビルドマクロ値を持っていると確信している)、それに応じてロジックを分岐する。もちろん、これは各開発者がこれに気づく必要があることを意味します。必要なビルドスイッチ/値を含むこれらのビルドを行うためのバッチファイルをプロジェクトに作成することはできますが、

同じアプリケーションを2つの異なる方法で同時にビルドしている開発者がいることが、あなたのシナリオには何か不思議です。

+0

はい、私が最初からやり直してしまえば、設定は正しいと思います。私たちはすでに〜60-70のプロジェクトを持っています。すべてのCOMプロジェクトがあなたを気にするわけではありませんシナリオは、私たちが独自のビルドを行う小さなチームであることです。ビルドBのパッチをリリースするためにビルドBをバックグラウンドでコンパイルしながらビルドAの現在の作業に取り組んでいることがあります。ビルドは実際にこれを行うのに十分な時間がかかります。 – Armbie

0

これはおそらく簡単な方法です。長時間実行しているバックグラウンドビルドを別のマシンに置くことです。他の物理マシンの予算を(安価に)確保できない場合は、VM上で実行してください。そこには無料のVMホストがあります。私は開発デスクトップ上でVMWare Serverを実行していることに恵まれました。十分なディスク容量とメモリが必要ですが、どちらもかなり安いです。

+0

ああ、古いVMの策略:-)良いアイデア。新しい開発環境を構築するための時間と労力を必要とするだけです。新しいインスタンスには新しいライセンスが必要だと仮定します。それがどうやってここでうまくいくのか分かりません。ありがとう。 – Armbie

関連する問題