HKLM \ S .. \ CurrentVersion \ Uninstall Version如何从ProductVersion属性派生 [英] How is HKLM\S..\CurrentVersion\Uninstall Version derived from ProductVersion property

查看:194
本文介绍了HKLM \ S .. \ CurrentVersion \ Uninstall Version如何从ProductVersion属性派生的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试进行深入研究,以解决我们遇到的间歇性问题,其中一些主要的升级安装在针对msi运行msiexec时被评估为维护安装.MSDN提供了卸载注册表的摘要键,并指出版本是从ProductVersion属性派生的.

I'm trying to do a deep dive to troubleshoot an intermittent problem we're experiencing with some major upgrade installs evaluating as maintenance installations when running msiexec against an msi. MSDN gives a rundown of the Uninstall registry key and states that Version is derived from the ProductVersion property.

我的问题是如何?例如,如何将"16.48.31"转换为"0x1030001f(271581215)"?VersionMajor和VersionMinor很简单,分别为"16"和"48".另一方面,版本不是很多.

My question is how? For example how does '16.48.31' get converted to '0x1030001f (271581215)'? VersionMajor and VersionMinor are straightforward, '16' and '48' respectively. Version, on the other hand, not so much.

答案可能与我的问题无关,但是我用尽了其他线索以进行跟踪.

The answer may not be relevatory to my problem, but I'm running out of other leads to track down.

推荐答案

您的问题可能是您未同时更新 ProductVersion ProductCode 软件包代码.这样会产生次要升级,而不是所需的主要升级.

Your problem is likely that you haven't updated both ProductVersion and ProductCode and package code in your update setup. This yields a minor upgrade instead of the desired major upgrade.

程序包代码应始终在每次编译设置时都进行更改,因为它应该是唯一的.如果两个MSI文件具有相同的程序包代码,则Windows安装程序根据定义会将它们视为相同的文件,并且可能会导致真正奇怪的问题-包括您所看到的行为.

The package code should always be changed every time your setup is compiled since it is only supposed to be unique. If two MSI files have the same package code Windows installer treat them as the same file by definition, and really strange problems can result - including the behavior you are seeing.

我只想确保您没有使用Installshield Installscript MSI项目?这是运行Installshields GUI而不是常规MSI GUI的特殊项目类型.项目类型到处都是问题,不应该使用.相反,您应该使用Basic MSI项目.

I just want to make sure you are not using an Installshield Installscript MSI project? This is the special project type that runs Installshields GUI instead of the regular MSI GUI. The project type is riddled with problems and should not be used. Instead you should use a Basic MSI project.

这篇关于HKLM \ S .. \ CurrentVersion \ Uninstall Version如何从ProductVersion属性派生的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆