Существует ли одна переменная MSBuild и TFSBuild, которая будет указывать, где находятся двоичные файлы? - PullRequest
7 голосов
/ 03 февраля 2012

Существует ли свойство, которое можно использовать либо в сборке Visual Studio, либо в сборке TFS, которая всегда будет указывать, где находятся двоичные файлы?

Это означает, что при сборке в Visual Studio он будет указывать на C: \ MySolution \ MyProject \ bin \ Release , а в сборке TFS он будет указывать на C: \ Build \ Path \ MySoution \ Бинарные

А если нет, то почему бы и нет? Это похоже на обычную базовую потребность / функцию.

1 Ответ

8 голосов
/ 03 февраля 2012

Существует свойство $OutDir, которое можно использовать в таких вещах, как события после сборки.

В сборке VS2010 это будет относительный путь от текущего проекта к двоичным файлам, поэтомубудет "bin \ Debug \", например.(Полный путь к выводу: $ TargetDir, то есть $ (ProjectDir) \ $ (Outdir)).

$ OutDir переопределяется во время сборок TFS и указывает путь, куда он помещает ваши двоичные файлы:

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

РЕДАКТИРОВАТЬ:

Чтобы получить полный путь в любом случае, один из вариантов, который вы можете использовать, это что-то вроде этого:

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