是否有一个MSBuild和TFSBuild变量指向二进制文件的位置?

Vac*_*ano 7 msbuild tfs visual-studio-2010 tfsbuild visual-studio

是否存在可以在Visual Studio构建或TFS构建中使用的属性,该构建始终指向二进制文件的位置?

这意味着当我在Visual Studio中构建它将指向C:\ MySolution\MyProject\bin\Release并且在TFS构建中它将指向C:\ Build\Path\MySoution\Binaries

如果没有,为什么不呢?这似乎是一个常见的基本需求/功能.

Mic*_*eld 8

有一个$OutDir属性,您可以在后期构建事件中使用.

在VS2010构建中,它将是从当前项目到二进制文件的相对路径,因此它将是"bin\Debug \".(输出的完整路径是$ TargetDir,它是$(ProjectDir)\ $(Outdir)).

在TFS构建期间,$ OutDir被覆盖以指向它放置二进制文件的路径:

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

编辑:

要在任何一种情况下获得完整路径,您可以使用的一个选项是这样的:

IF '$(BuildingInsideVisualStudio)'=='true' (
  COPY SomeFile $(TargetDir)$(OutDir)
) ELSE (
  COPY SomeFile $(OutDir)
)
Run Code Online (Sandbox Code Playgroud)