【发布时间】:2013-11-14 08:00:25
【问题描述】:
我在本地使用 TFS 2013。我在构建机器上配置了四个构建代理。几个构建定义编译 ASP .NET 网站。我配置了 msbuild 参数以将 IIS 应用程序部署到集成服务器,该服务器位于 Rackspace 中。
默认情况下,webdeploy 通过比较文件日期进行差异部署。在我的情况下,这是一个很大的优势,因为将文件从我们的网络复制到 Rackspace 需要相当长的时间。现在,为了保留文件日期,构建代理必须编译相同的基本源代码集。在每次构建时,只有不同的源代码会生成一个新的 DLL,从而最大限度地减少部署的文件数量。
所有这些都可以正常工作,但需要注意的是:必须将给定的构建定义分配给构建代理(通过代理名称或标签)。问题是当分配给同一代理的所有构建都排队时,我会产生很多意外情况。他们排队等待上一个构建完成。
在理想情况下,任何代理都应该能够处理任何构建,但无论代理如何,正在编译的源代码都必须相同。
我尝试将所有代理的工作文件夹更改为指向同一位置,但由于无法将两个代理映射到同一文件夹,我收到错误消息。我猜每个代理都有一个工作区。
有什么想法吗?
【问题讨论】:
-
我同意@Jason Williams 的观点——目前尚不清楚为什么您会按照您描述问题的方式需要多个代理。拥有多个代理的目的是并行构建,并且他的选择经过深思熟虑;自您发布此消息以来已经有几个月了 - 从那时起您是否对您的流程进行了任何更改?不管怎样,进展如何?