Wix安装程序删除了要更新的文件,但未安装新版本

时间:2020-04-03 19:46:24

标签: wix windows-installer fileversioninfo

最近将Wix安装程序配置为先前安装的应用程序的“主要升级”时遇到了问题。系统上已经安装的应用程序包括一个版本为1.0.0的S7.Net.dll文件,而用于表示更新的安装程序包括一个同名的dll(S7.Net.dll),但版本为0.3.0将被安装在同一位置。但是,运行“升级”安装程序似乎删除了版本1.0.0的文件,但从未将其替换为版本0.3.0的文件。

我已经研究了安装程序(link)所使用的文件版本控制逻辑,如果我对它的理解正确,则安装程序不应该将系统上已安装的文件(v1.0.0)替换为一个来自“升级”安装程序(v0.3.0)。这种理解正确吗?鉴于“升级”安装程序确实包含MajorUpgrade组件这一事实,对此我不确定,根据我的理解,默认情况下该组件会执行某种“全部删除”操作-至少这是我通过阅读Wix documentationRemoveFeatures属性的说明。但是,如果执行“全部删除”,那么为什么仍要比较这两个文件的版本?

总体而言,我对文件版本控制逻辑的理解正确吗?我对RemoveFeatures Wix组件的MajorUpgrade属性的理解如何?如果是这样,为什么“升级”安装程序会删除文件的现有版本而不替换它?

我已经包括了安装程序中包含的MajorUpgrade组件,以及提到的每个dll文件的属性选项卡的屏幕截图。

<MajorUpgrade AllowDowngrades="no" DowngradeErrorMessage="A newer version of [ProductName] is already installed."/>

Properties of existing file v1.0.0.0

Properties of updated file v0.3.0

0 个答案:

没有答案