Существует ли одна переменная 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)
)