是否可以检测当前构建是否从Visual Studio执行而不是使用TFS自动构建而不创建单独的解决方案配置?我想知道如果构建在TFS 2013上运行,我是否可以排除某些Post Build Events,但是如果可能的话我想避免完全单独的配置。
答案 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 event和Team Foundation Build environment variables。
答案 1 :(得分: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
此时,PostBuildEvent仅在使用Visual Studio构建时执行。
This answer以及该问题的其他答案都很有用。
这个特殊属性也在this MSDN页面上简要提及。