代码之家  ›  专栏  ›  技术社区  ›  CodeHulk

在.net中智能部署dll

  •  4
  • CodeHulk  · 技术社区  · 14 年前

    我们最初的想法是本地PC只复制自上次部署以来更改的DLL。我们在这方面遇到了一些问题,因为时间戳使得很难对文件进行精确的哈希比较。版本号可能可以正常工作,但我们必须找到一种方法,只有版本的文件,如果它的代码已经改变。

    只是想知道是否有人成功或建议处理类似的过程。

    3 回复  |  直到 14 年前
        1
  •  3
  •   Will Dean    14 年前

    我们在国际上做了很多工作,把文件推送到我们正在远程工作的设备上。

    我们的解决方案是创建一个定制工具来完成这项工作(它实际上做了很多其他的事情),它做了一种“增量复制”,即只推送已经更改的部分文件。

    这使您不用担心文件时间戳等问题—您在远端得到的文件是逐字节的,与近端的文件相同,但如果唯一实际更改的是内部时间戳,则很少有数据需要跨线移动。

    我们使用了一种大致基于rsync工作方式的算法( http://samba.anu.edu.au/rsync/tech_report/ ),尽管我们是用C#从头开始写的。

    但是,在您的情况下,设置rsync和批处理文件以使用正确的环境/选项调用它实际上可能更简单。这里有一个Win32版本的rsync: http://www.itefix.no/i2/node/10650 我成功地使用了它。

        2
  •  1
  •   Steven Sudit    14 年前

    时间戳对哈希没有影响,但是更新版本号肯定会改变哈希。

        3
  •  0
  •   Zesty    14 年前