检测TFS Build与Visual Studio构建

时间:2015-06-01 17:46:00

标签: visual-studio-2013 tfs tfsbuild tfs2013

是否可以检测当前构建是否从Visual Studio执行而不是使用TFS自动构建而不创建单独的解决方案配置?我想知道如果构建在TFS 2013上运行,我是否可以排除某些Post Build Events,但是如果可能的话我想避免完全单独的配置。

2 个答案:

答案 0 :(得分:5)

您不需要编辑CSProj文件:只需在Visual Studio Post-Build事件中使用CMD.EXE语法

您可以测试是否在Visual Studio中运行

IF "$(BuildingInsideVisualStudio)"=="true" ( … )

或在TFS Build(2013或更高版本)内部

IF "$(TF_BUILD)"=="True" ( … )

参见讨论a TFS 2010 Build Automation and post-build eventTeam Foundation Build environment variables

答案 1 :(得分:3)

有可能,我终于找到了:

  1. 卸载有问题的项目,该项目定义了PostBuildEvent。
  2. 编辑.csproj文件。
  3. 找到PostBuildEvent XML元素,并添加如下所示的Condition属性:

    declare @date1 datetime declare @date2 datetime set @date1 = null set @date2 = '2015-05-01' select CASE WHEN @date1 is null or @date2 is null then null WHEN @date1 >= @date2 THEN @date1 ELSE @date2 END

  4. 此时,PostBuildEvent仅在使用Visual Studio构建时执行。

    This answer以及该问题的其他答案都很有用。

    这个特殊属性也在this MSDN页面上简要提及。