2012-02-03 5 views
7

バイナリの場所を常に指し示すVisual StudioビルドまたはTFSビルドで使用できるプロパティはありますか? \ MySolution \ MyProjectと\ binに\リリースとTFSには、それがCを指しますビルドします:私は、Visual Studioでビルドするとき、それはCをポイントすることを意味バイナリの場所を指すMSBuildとTFSBuild変数が1つありますか?

\ビルド\パスを\ MySoution \バイナリは

もし存在しなければ、どうしてですか?これは一般的な、基本的なニーズ/機能のようです。

答えて

8

投稿後のイベントなどで使用できる$OutDirプロパティがあります。

VS2010ビルドでは、現在のプロジェクトからバイナリへの相対パスになるため、たとえばbin \ Debug \となります。 (出力へのフルパスは$ Ta​​rgetDir、$(ProjectDir)\ $(Outdir)です)。

<OutDir Condition=" '%(ConfigurationToBuild.PlatformToBuild)' != 'Any CPU' ">$(BinariesRoot)\%(ConfigurationToBuild.PlatformToBuild)\%(ConfigurationToBuild.FlavorToBuild)\</OutDir> 
<OutDir Condition=" '%(ConfigurationToBuild.PlatformToBuild)' == 'Any CPU' ">$(BinariesRoot)\%(ConfigurationToBuild.FlavorToBuild)\</OutDir> 

EDIT:

いずれの場合も、完全なパスを取得するには、使用する可能性が1つのオプションである

$ OUTDIRは、TFSは、それはあなたのバイナリを置くパスを指すように構築する時に上書きされ

IF '$(BuildingInsideVisualStudio)'=='true' (
    COPY SomeFile $(TargetDir)$(OutDir) 
) ELSE (
    COPY SomeFile $(OutDir) 
) 
+0

しかし、outdirは相対的です。私は完全な道が本当に好きです。ソリューションのサブディレクトリにプロジェクトがある場合、相対パスは使いにくくなります。 – Vaccano

+0

このプロパティを使用する必要がある場所が正確ではないので、より良い回答を得るのは難しいです。たとえば、ビルド後のイベントでは、プロパティは実行中のプロジェクトとの相対的なものになります。どちらの場合でもフルパスを得る方法で私の答えを更新します。 –

関連する問題