如何确定是否在TFS构建代理上运行csproj?

mar*_*ark 10 msbuild tfs team-build tfsbuild

我们使用TFS 2010.

有几个项目具有部署步骤,必须知道它们是在dev机器上运行还是在TFS构建代理程序上运行.

现在,他们检查构建是否来自Visual Studio,假设只有devs从VS编译.唉,这意味着我无法从命令行编译!

所以,我的问题是msbuild脚本如何确定它是否由TFS构建代理运行?

jes*_*ing 11

你有几个选择:

  1. '$(BuildingInsideVisualStudio)' != ''
  2. '$(TeamBuildConstants)' != '' (在Build 2008团队中支持)
  3. '$(IsDesktopBuild)' == 'false'

您可以检查其中任何一个以检测任务已执行的上下文.如果两者都未评估,则已从命令行或其他某个进程调用MsBuild.