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

Visual studio 是否有一个MSBuild和TFSBuild变量将指向二进制文件所在的位置?,visual-studio,visual-studio-2010,tfs,msbuild,tfsbuild,Visual Studio,Visual Studio 2010,Tfs,Msbuild,Tfsbuild,是否有一个属性可以在VisualStudio构建或TFS构建中使用,该属性始终指向二进制文件所在的位置 这意味着当我在Visual Studio中构建时,它将指向C:\MySolution\MyProject\bin\Release,而在TFS构建中,它将指向C:\build\Path\MySoution\Binaries 如果没有,为什么没有?这似乎是一个常见的基本需求/功能。有一个$OutDir属性,您可以在构建后事件中使用它 在VS2010版本中,它将是从当前项目到二进制文件的相对路径,因

是否有一个属性可以在VisualStudio构建或TFS构建中使用,该属性始终指向二进制文件所在的位置

这意味着当我在Visual Studio中构建时,它将指向C:\MySolution\MyProject\bin\Release,而在TFS构建中,它将指向C:\build\Path\MySoution\Binaries


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

有一个
$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>

但outdir是相对的。我真的想要一个完整的路径。如果您的解决方案中的子目录中有项目,则相对路径将很难使用。我不确定您需要在何处使用此属性,因此很难给您提供更好的答案;例如,在生成后事件中,该属性将与正在运行的任何项目相关。无论哪种情况,我都会更新我的答案,以获得完整的路径。
IF '$(BuildingInsideVisualStudio)'=='true' (
  COPY SomeFile $(TargetDir)$(OutDir)
) ELSE (
  COPY SomeFile $(OutDir)
)