如何为构建服务提供未部署的依赖项?

时间:2011-10-28 07:36:42

标签: tfs msbuild dependencies build-server

前几次我问了how to integrate an application using dependencies on a build server的问题,我得到了相当令人满意的答案。今天我面临着不同的情况。对于一个项目,我必须使用不可再分发依赖(SSRS的RDL对象模型)。这意味着开箱即用,这些组件不会被部署用于开发目的。但不知何故,我需要......

我的第一个猜测是在GAC中发布它们。很好,它工作,构建服务器能够顺利编译项目。但后来我意识到它打破了一些应用程序,如报表服务器和报表生成器(可能它也会打破BIDS)。因此,在GAC中发布绝对不是一个合适的解决方案。

我的第二个猜测是检查源代码管理中的程序集。好吧,如果我只有2个装配量大约1MB,它可以工作。但是这里 23个集会和29MB 我必须办理登机手续,所以它绝对不合适。

我对MSBuild目标了解不多,也许它可能是一个解决方案,但我真的不知道如何使用它。我一直在努力工作,现在我必须在打破我的构建或破坏我的服务之间做出选择!

2 个答案:

答案 0 :(得分:1)

正如有些人在评论中所说,我们最终决定对集会进行控制。

但是,由于我们处于一个我们有时需要移动很多的环境中,这意味着并不总是在办公室,并且需要远距离工作,偶尔会有一些不可靠的互联网连接,我们决定对我们是否采取一些严格的条件控制程序集或我们在构建服务器和开发机器上部署它们。

如果满足所有这些标准,则会对源组件进行源控制:

  • Assemblies / Framework不可部署/可再分发
  • 程序集/框架部署可能会干扰本地计算机服务的稳定性
  • 项目集合上已部署的程序集总量不超过100MB

答案 1 :(得分:0)

您可以尝试仅为这些程序集使用不同的存储库,并在构建作业期间执行签出/更新。

另外,如果你想将它保存在主仓库中,可以使用svn:externals(http://svnbook.red-bean.com/en/1.0/ch07s03.html)自动更新DLL当您更新工作副本时。