更新DLL而不替换它?

时间:2012-08-09 21:49:27

标签: c#-4.0 dll patch

假设我有一个100 MB的C#DLL。现在,如果我想更新这个DLL,据我所知,我需要通过下载它来获取另一个DLL,删除旧的DLL,然后移动这个新的DLL来“更新”DLL(让我们假设程序集的那个参考这个DLL不关心DLL的版本。)

有没有办法创建一个文件,其中包含已更改的所有类和项(仅包含已更改的内容)并重新编译DLL以进行这些更改,或者某些更改DLL如何更改?

目标是通过小补丁更新DLL,而无需重新下载整个DLL。

谢谢

1 个答案:

答案 0 :(得分:1)

您使用相同的机制版本控制系统使用 - 例如,SVN愉快地仅存储不同二进制签入之间的更改,以及一些可以将mb dll转换为几k的dll。 (显然你的里程可能会改变)

一般来说二元差异并不像文本那样有效,这就是为什么它不经常使用,但它可以适用于某些 - 它取决于二进制的布局方式,如果编译过程产生的东西通常是相同的而不是完全不同。

您需要在客户端上使用一些代码来提取更改,使用gnu patch tools或使用Windows BITS之类的内容。