怎样删除小程序的软件:小软件补丁如何纠正大软件 (big patches)

我一直想知道的一件事是软件补丁是如何工作的。许多软件似乎只是在其二进制文件上发布需要安装在旧版本上的新版本,但是某些软件(尤其是 Windows 等操作系统)似乎能够发布非常小的补丁,以纠正错误或为现有软件添加功能。

大多数时候,我看到的补丁不可能取代整个应用程序,甚至是应用程序中使用的小文件。

任何人都可以指向我解释这是如何工作的任何资源,或者它只是简单的替换小组件,如应用程序中的链接库?

我可能永远不需要以这种方式进行部署,但是我很想知道它是如何工作的。如果我的理解是正确的,补丁可以真正地修改二进制文件的一部分,那么在.NET 中可以这样做吗?如果是的话,我想学习它,因为这是我最熟悉的框架,我想了解它是如何工作的。

14

这通常使用二进制 diff 算法来实现-将最新发布的版本与新代码进行比较。如果用户运行的是最新版本,则只需应用 diff。对软件特别有效,因为编译后的代码通常在版本之间非常相似。当然,如果用户没有运行最新版本,则必须下载整个版本。

有几个通用二进制 diff 算法的实现:bsdiffxdelta是很好的开源实现。我找不到.NET 的任何实现,但是由于所讨论的算法与平台无关,因此如果您感觉像一个项目,则移植它们应该不会太难。

2

如果您正在谈论修补 Windows 应用程序,那么您想要查看的是.MSP 文件。这些类似于.MSI,但只是补丁和应用程序。

查看 MSDN 文档中的Patching and Upgrading

.MSP 文件所做的是将更新的文件加载到应用程序安装。这通常是更新的 dll 和资源文件,但可能包括任何文件。

除了修补已安装的应用程序外,还将更新 C:\ WINDOWS\ Installer 中的修复文件。然后,如果用户从“添加 / 删除程序”中选择“修复”,则也将使用更新的修补程序文件。

我认为 John Millikin 讨论的二进制 diff 方法必须在其他操作系统中使用。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(396)
淬火的淬是cui还是zhan:尝试修改AutoCADCUI宏命令
上一篇
大众cc和凯美瑞哪个好:大众运输商店和远期(transitstore)
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(1条)