C#:以编程方式将合并/修补程序应用于文件?

C#:以编程方式将合并/修补程序应用于文件?,c#,merge,patch,C#,Merge,Patch,我有一个程序需要几个大的(~4或5mb)文件。每周一次,每周都会有这些文件的新版本,但会有一些小的更改。大多数情况下,只是添加或删除了几行 当程序启动时,如果有互联网连接,我希望程序自动更新这些文件。我不想下载这些文件的整个新版本,我只想下载一个基于更新它们的客户端版本的补丁 我该怎么做 我完全控制服务器。如果您不知道文件中的内容,或者服务器没有允许您请求差异的功能,那么这是一个很难解决的问题。您编写的任何程序,如果无法在不查看新旧文件的情况下确定差异,则必须下载它 C#没有任何内置功能来完成这

我有一个程序需要几个大的(~4或5mb)文件。每周一次,每周都会有这些文件的新版本,但会有一些小的更改。大多数情况下,只是添加或删除了几行

当程序启动时,如果有互联网连接,我希望程序自动更新这些文件。我不想下载这些文件的整个新版本,我只想下载一个基于更新它们的客户端版本的补丁

我该怎么做


我完全控制服务器。

如果您不知道文件中的内容,或者服务器没有允许您请求差异的功能,那么这是一个很难解决的问题。您编写的任何程序,如果无法在不查看新旧文件的情况下确定差异,则必须下载它

C#没有任何内置功能来完成这项工作,但听起来您的需求并不复杂。看看如何使用Unix上的diff和ed来修补基于易于查找的delta的文本文件。当然,您应该根据哈希检查生成的文件,如果不正确,则返回完整下载。

您有权访问服务器吗?(即,您是否可以将(A)静态文件和/或(B)ASP.NET或其他服务器端脚本上载到服务器?)是否可以在服务器和客户端上安装应用程序?对Mercurial来说似乎是个问题。