2009-05-19 1 views
1

私は、複数のC#プロジェクトといくつかのC++プロジェクトを持つVisual Studio 2008ソリューションで作業しており、ビルド後のイベントを使用してサードパーティのベンダーのコマンドラインツールを実行したいと考えています。これらのポストビルドイベントは、いくつかのプロジェクトで必要とされます。ソリューションで複数のプロジェクト(VS 2008)で使用するMakefileスタイルの変数を定義するにはどうすればよいですか?

コマンドラインで必要なパス名やその他のファイルをハードコードすることはできますが、もっと柔軟なものを選ぶことができます。おそらく:

$(ToolsDir)\ $(PackageBuilder)$(ThirdPartyDllFolder)$(SharedOutputFolder)私はUNIX用に開発し、実行するためのmakefileを使用

構築し、私はハイレベルで変数を定義することができましたmakefileを作成し、子メイクファイルに継承させます。このようにして、すべての出力を特定の場所に移動させるか、特定の場所でライブラリなどを探すことができます。

Visual Studioソリューションを使用して同様のことを定義できます環境変数のようなものをプロジェクトレベルのポストビルドイベントで参照しますか?

編集:私は今Windows環境変数を使用していますが、コードをダウンロードしてビルドするだけでセットアップを必要としないものが好きです。

答えて

1

Windowsで環境変数を考慮しましたか?私はそれがまったく同じものではないことを知っていますが、バッチファイルでそれらを設定し、そのバッチファイルをビルド後に実行することができます。

+0

Scott、はい私は実際にこの方法を使用しますが、開発者がソースコードをクリーンマシンにダウンロードして余分な「もの」を必要とせずにビルドできる方法を探しています。 – Jeremy

1

私は同じような問題を抱えていました。私の最初の「解決策」は、開発者がリポジトリから最初に「取得」したときに構築されて実行されるツールを作成することでした。それはきれいではなく、1つの追加ステップでしたが、一度だけでした。

私はそれを断念しましたが、今度は別の方法があります。 3番目のツールをsvnリポジトリ(ソースとは別のもの)に置き、コードベースのルートに関連してリポジトリがどこにあるのかに関する特定の階層と名前が必要です。このようにして、ビルド後のステップや他の部品に自信を持って相対パスを使用できます。

私はこれがMSビルドツールの弱点であることに同意します。

関連する問題