2

前段时间我问过如何使用构建服务器上的依赖项来集成应用程序的问题,我得到了非常令人满意的答案。今天我面临一个不同的情况。对于一个项目,我必须使用不可再分发的依赖(SSRS 的 RDL 对象模型)。这意味着开箱即用,这些程序集不是为了开发目的而部署的。但不知何故,我需要...

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

我的第二个猜测是检查源代码控制中的程序集。好吧,如果我只有 2 个大约 1MB 的程序集,它就可以工作。但是这里有23 个程序集和 29MB我必须签入,所以它也绝对不合适。

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

4

2 回答 2

1

正如一些人在评论中所说,我们最终决定对程序集进行源代码控制。

但是由于我们所处的环境有时需要经常移动,这意味着我们并不总是在办公室,并且需要远程工作,并且偶尔会有些不可靠的 Internet 连接,因此我们决定对是否对组件进行源代码控制设置一些严格的条件或者我们将它们部署在构建服务器和开发机器上。

如果满足所有这些标准,则程序集将受到源代码控制:

  • 程序集/框架不可部署/不可再分发
  • 程序集/框架部署可能会干扰本地机器服务的稳定性
  • 项目集合上部署的程序集总量不超过 100MB
于 2011-11-07T14:11:29.697 回答
0

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

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

于 2011-11-07T14:34:31.417 回答