在使用二进制补丁时更新已安装的程序版本?

所以我正在研究使用类似bsdiff的东西来创build非常小的自动补丁。 我注意到的一个限制是它不会更新win7中程序和function中显示的已安装版本号。 有什么办法可以手动更新这个,你应该使用任何API? 和其他你应该考虑的事情,显然像UAC这样的事情将需要考虑。

“程序和功能”或“添加/删除程序文件”中的版本号来自注册表项,而不是来自文件。

在其中一个键下面会有应用程序的卸载子键。 HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Uninstall HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Uninstall

更新此项下的DisplayVersion注册表值将更改程序和功能或添加/删除程序文件中的版本号。

除了Bevan在64位机器上的回答,路径可以是HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ Uninstall

我不确定Current用户是否也有这个结构