在我目前的客户端,我们正在使用CruiseControl.Net进行持续集成。我们正在使用MSBuild构建网站项目。
我遇到的问题如下:我们希望在每个版本中移动所有代码和相关的DLL。但是,我们也有(有时)数百兆的文件和图像没有变化。在CC.Net世界中,我可能将它们拆分为两个不同的版本,一个用于站点,另一个用于静态内容。
我想知道的是,如果有人知道MSBuild或CCNet插件可以让我在我的静态内容上做二进制差异吗?我想知道是否已映像或已添加映像,然后将仅更改/添加的内容打包并将其推送到QA环境。
答案 0 :(得分:0)
我使用svn logs和MsBuild任务做到了。
每次我部署网站时,我都会在某处修改版本号(基本上是在平面文件中)。 然后在下一个Build-Deploy中,我将做一个svn日志来查看最新版本和现在之间的差异。然后我的MsBuild Task获取svn log xml输出,解析它并在另一个文件中输出添加/修改/删除的有趣静态文件。 然后,通常的任务进入并仅处理修改的文件而不是每个文件。
这是一项巨大的工作(最重要的是内部逻辑:我们的“静态”内容是为每个环境,每个合作伙伴和每个主题动态生成的)但它是值得的。
无论哪种方式,您都可以尝试使用ChecksumCopy,但我不知道它是否更便宜......