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

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

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

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

1 ответ

Есть $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)
)
Другие вопросы по тегам