WiX:更新“添加/删除程序”中显示的版本号

时间:2010-12-20 02:30:18

标签: wix wix3.5 wyupdate

我使用WyUpdate自动提供程序更新,以便我的客户始终运行最新版本。但是,此方法的一个问题是在更新期间不会调用MSI安装程序(使用WiX 3.5创建),因此添加/删除程序中的版本号不会增加。

我的问题是,是否有一种安全的方式可以以编程方式显示所显示的版本?(WyUpdate能够在更新期间执行自定义代码并更改注册表值。)

2 个答案:

答案 0 :(得分:4)

从技术上讲,您可以在系统注册表中找到读取版本的密钥(通常在SOFTWARE / Microsoft / Windows / CurrentVersion / Uninstall下),并强制您的更新软件每次使用正确的版本修改此值。

但我不认为这是个好主意。修改您不欠的注册表项,并将自己的逻辑注入Windows Installer可能会导致意外后果。我个人永远不会这样做。迟早会发射......

顺便说一句,如果您不依赖Windows Installer更新,为什么更新ARP版本更重要?例如,在您的应用程序中有一个众所周知的位置,用户可以在其中查找当前版本。

答案 1 :(得分:0)

只需将“DisplayVersion”值更改为最新版本即可。

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\YourAppName

另外,为了节省时间,在wyBuild中您可以use the %version% variable,并且您创建的每个新版本都将使用正确的版本(而不是每次发布新版本时都必须键入它)。

关于严说的话......

  

但我不认为这是个好主意。修改您不欠的注册表项,并将自己的逻辑注入Windows Installer可能会导致意外后果。我个人永远不会这样做。迟早会发射......

这是完全错误的。编辑注册表值不会更改安装程序逻辑。它根本不危险。最终用户仍然可以修复原始安装(将注册表和所有文件还原为原始版本),并且可以运行卸载程序,它将删除注册表和文件(尽管它们已被更改)。

如果不希望“msi修复”恢复到原始安装(而不是应用程序的更新版本),那么您需要向用户提供* .msp或* .msi并{ {3}}

简短回答:编辑注册表既不邪恶也不安全,只要您了解它是什么。