【发布时间】:2015-08-15 06:56:36
【问题描述】:
是否可以在不创建单独的解决方案配置的情况下检测当前构建是否从 Visual Studio 执行,而不是使用 TFS 自动构建?我想知道如果构建在 TFS 2013 上运行,我是否可以排除某些构建后事件,但如果可能的话,我想避免完全单独的配置。
【问题讨论】:
标签: visual-studio-2013 tfs tfsbuild
是否可以在不创建单独的解决方案配置的情况下检测当前构建是否从 Visual Studio 执行,而不是使用 TFS 自动构建?我想知道如果构建在 TFS 2013 上运行,我是否可以排除某些构建后事件,但如果可能的话,我想避免完全单独的配置。
【问题讨论】:
标签: visual-studio-2013 tfs tfsbuild
您无需编辑 CSProj 文件:只需在 Visual Studio 生成后事件中使用 CMD.EXE 语法
您可以测试是否在 Visual Studio 中运行
IF "$(BuildingInsideVisualStudio)"=="true" (
…
)
或在 TFS 内部构建(2013 或更高版本)
IF "$(TF_BUILD)"=="True" (
…
)
查看讨论 TFS 2010 Build Automation and post-build event 和 Team Foundation Build environment variables。
【讨论】:
有可能,我终于找到了方法:
找到 PostBuildEvent XML 元素,并添加一个 Condition 属性,如下所示:
<PostBuildEvent Condition="'$(BuildingInsideVisualStudio)' == 'true'">
此时 PostBuildEvent 将仅在使用 Visual Studio 构建时执行。
This answer 和该问题的其他答案很有帮助。
this MSDN 页面上也简要提到了此特定属性。
【讨论】: