【问题标题】:Preventing Checkin to trigger multiple Build with TFS 2010使用 TFS 2010 防止签入触发多个构建
【发布时间】:2014-07-10 22:37:27
【问题描述】:

我在 Lib 文件夹中的 TFS 2010 项目中添加了一些库。 每次我检查 Lib 文件夹中的 dll 时,所有引用该 Lib 文件夹的构建都会自动触发(超过 20 个构建)。

我可以使用***NO_CI*** 来防止这种情况。但我更喜欢自动的东西。 是否可以在 TFS 上有一个事件处理程序来防止这种情况发生。

例如。如果签入在该文件夹中,请不要扫描所有 CI 构建工作区来触发构建。

【问题讨论】:

  • Lib 文件夹包含第三方程序集。它在许多构建定义工作区中被引用。我想要的只是那个 Lib 文件夹 trig Build 的其他地方的 Check In。我不想将所有 CI 构建更改为手动。如果我修改构建模板,所有构建都将被触发。我想要类似“NO_CI”的东西,但如果签入在我的 TFS 项目的特定文件夹中,则会自动管理

标签: tfs tfsbuild


【解决方案1】:

构建定义中的工作区映射定义了哪些文件/文件夹是该构建的一部分。您可以使用隐藏文件夹从工作区中显式排除文件夹。

但是,工作区映射用于两个目的:确定哪些文件作为构建的一部分下载到构建服务器,以及确定哪些文件触发 CI/Rolling/Gated 构建。

如果您从工作区中排除文件夹(例如,使用隐藏文件夹),它将阻止构建被触发,但它也会阻止这些文件作为构建的一部分下载。

如果您想让构建下载某个文件夹作为构建的一部分,但没有通过签入该文件夹触发构建,我认为如果不自定义构建是不可能的工作流程。

【讨论】:

    【解决方案2】:

    当您在工作区中包含一个文件夹时,您是说对该文件夹的更改会影响您的项目。对于共享源代码的更改与共享二进制文件的更改相同。如果它发生变化,那么应该构建受影响的应用程序(并且应该运行它们的自动化测试),以便可以确定更改的文件是否破坏了任何东西。

    【讨论】:

      【解决方案3】:

      确保lib文件夹中的每个库都有自己的文件夹+下面的版本文件夹

      lib
        EntityFramework
          4.1
            EntityFramework.dll     
          4.2
            EntityFramework.dll
      

      然后修改您的构建以仅引用项目引用的库的特定文件夹。

      设置构建需要大量工作,但会确保构建仅在构建所需的文件发生更改时触发。

      或者项目目录中每个库的副本,您可以使用 NuGet 或 OpenWrap 等包管理器对其进行管理

      【讨论】:

        猜你喜欢
        • 2013-06-06
        • 2015-04-24
        • 2013-05-19
        • 1970-01-01
        • 2020-02-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多