【问题标题】:Conditionally execute a task after building a solution with MSBuild + TFS使用 MSBuild + TFS 构建解决方案后有条件地执行任务
【发布时间】:2011-06-06 15:24:04
【问题描述】:

我正在使用带有 TFS 的 MSBuild,我必须构建 4 个解决方案。编译完成后,我应该根据编译成功与否的位置启动 4 个不同的 Exec 任务。

我知道如何使用带有条件的目标单独使用 var $(BuildBreak) 来做到这一点,因为我可以构建解决方案 - 检查结果 - 执行任务 - 构建......但我不知道该怎么做使用 TFS 扩展...任何帮助将不胜感激。

谢谢小伙伴们。

【问题讨论】:

    标签: tfs msbuild msbuild-task


    【解决方案1】:

    使用 TFS,其想法是挂钩到 TFS 事件服务。这家伙为他的项目做到了here。由于我刚刚开始使用 TFS,因此我无法提供太多细节,尽管我确信它与处理普通的 Web 服务相距不远。你应该可以找到事件服务here的详细信息

    【讨论】:

    • 我不同意。我只想创建一个使用 TFS 目标的构建脚本,与此无关。
    【解决方案2】:

    您可以对 TFS 使用相同的目标和条件。要实现在使用 TFS 构建时调用的自动化,您可以检查 BuildingInsideVisualStudio 属性 - 它仅在(您猜对了)您在 Visual Studio 中构建时定义.

    【讨论】:

    • Mmmm ...但仅使用 MSBuild 我使用任务 MSBuild 来构建解决方案,而使用 TFS 我只是提供已经实现的 CoreCompileSolution 所需的项目...也许我不明白事情是正确的。
    • 您在 TFS 2010 构建定义(升级或默认)中使用什么流程模板?我问这个,因为如果你使用升级,你可以继续你本来会做的事情(CoreCompileSolution),也可以使用 Jim 的建议来避免在本地构建上这样做。如果您使用的是默认模板,则需要编辑构建过程模板。不过,首先创建 DefaultTemplate.xaml 的一个分支。如果您遇到问题或需要帮助,请告诉我们。
    【解决方案3】:

    我必须检查在 TFS 构建扩展中定义的 AfterCompileSolution 目标

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-11
      • 2012-12-16
      • 2011-09-09
      • 2013-10-22
      • 2011-05-08
      • 1970-01-01
      • 2011-09-07
      相关资源
      最近更新 更多