使用二进制补丁时更新已安装的程序版本?
所以我正在研究使用 bsdiff 之类的东西来创建非常小的自动补丁。我注意到的一个限制是它不会更新 win7 中程序和功能中显示的已安装版本号。有什么方法可以手动更新这个,你应该使用任何 api 吗?以及您应该考虑的任何其他事情,显然需要考虑 UAC 之类的事情。
So i'm looking into the idea of using something like bsdiff to create very small and automatic patches. One limitation i notices is it won't update the installed version number that is show in Programs and Features in win7. Is there some way you can manually update this, any api's you should be using? and any other things you should consider, obviously things like UAC will need to be considered.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
程序和功能或添加/删除程序文件中的版本号来自注册表项而不是文件。
在这些项之一下将有应用程序的卸载子项。
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
更新此注册表项下的 DisplayVersion 注册表值将更改“程序和功能”或“添加/删除程序文件”中的版本号。
The version number in Programs and Features or Add/Remove Program Files comes from a registry entry rather than from a file.
Under one of these keys there will be the application's uninstall subkey.
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
Updating the DisplayVersion registry value under this key will change the version number in Programs and Features or Add/Remove Program files.
除了 Bevan 在 64 位计算机上的答案之外,路径还可能是 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
我不确定当前用户是否也具有此结构
In addition to Bevan's answer on 64bit machines the path could be HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
I'm not sure if Current user also has this structure