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

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

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

最佳答案

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


编辑:

无论哪种情况,要获取完整路径,您可以使用以下一种方法:

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

08-27 07:29