Windows installer msi重新安装windows7问题

Windows installer msi重新安装windows7问题,windows-installer,reinstall,Windows Installer,Reinstall,我有两个版本的产品product1 1.2.2.2和1.2.2.3 对于这两种升级/降级,product1都使用了reinstall=all-reinstallmode=vamus-MSI参数,因此总是新的文件将位于安装目录中 如果我真的从1.2.2.2升级到1.2.2.3,并不是所有的新文件都在安装目录下。 我只在windows 7 x86和x64上面临这个问题。x86和x64的XP都没有问题 我比较了xp和win7上的日志。我发现了以下区别 XP: SetSourceFolderFolder

我有两个版本的产品product1 1.2.2.2和1.2.2.3

对于这两种升级/降级,product1都使用了reinstall=all-reinstallmode=vamus-MSI参数,因此总是新的文件将位于安装目录中

如果我真的从1.2.2.2升级到1.2.2.3,并不是所有的新文件都在安装目录下。 我只在windows 7 x86和x64上面临这个问题。x86和x64的XP都没有问题

我比较了xp和win7上的日志。我发现了以下区别

XP: SetSourceFolderFolder=1\PROGRA~1\company~1\product~1\drivers\\124; program files\companyname\productname\drivers

win7: 执行op:SetSourceFolderFolder=C:\Windows\Installer\$PatchCache$\Managed\A7C0B53D5489A48A0183013BEF525E\1.2.2


这是我的设置。我们的产品支持升级和降级。为了使客户端尽可能简单,我们选择了重新安装=全部重新安装模式=vamus,以便这些选项同时支持升级和降级。另一个重要的一点是,这个MSI没有单独的升级或下载信息。MSI有平面组件。MSI中的所有组件都已签名。还嵌入了版本信息。 我的问题是 1 windows installer在win7上的行为是否已更改? 2安装程序是否仅将a.b.c作为版本信息?之后它会忽略吗


另一个重要的一点是,这个MSI没有单独的升级或下载信息。MSI有平面组件。重新安装=所有重新安装模式=vamus参数确保始终运行的msi版本组件进入安装目录。到目前为止,这种方法工作了近5年。只有win7有问题

要重现这个问题。。。 1由msiexec/i 1.2.2.2.2.msi安装1.2.2.2 2降级到1.2.2.1没有问题msiexec/i 1.2.2.1.msi重新安装=所有重新安装模式=vamus 3升级到1.2.2.2会导致问题msiexec/i 1.2.2.2.msi重新安装=所有重新安装模式=vamus 4重试以再次升级到1.2.2.2。这次没有问题

另一个观察结果是,MSI中的一个组件说comp1有两个文件,说file1,file2。File1是组件comp1的密钥路径。 在出现问题的时候,第3步,文件1没有得到更新。但是file2正在正确更新


另一个观察。我在不同的版本上运行了上述测试

->1.2.1.1和1.2.2.1之间的升级/降级按预期工作 ->1.2.1.1和1.2.1.2之间的升级/降级未按预期工作 ->1.2.2.1和1.2.2.2之间的升级/降级未按预期工作


如上所述,windows installer正在考虑a.b.c.之前的版本。a.b.c.x和a.b.c.y之间的升级/降级会导致windows-7出现问题。正确的参数包括:

REINSTALL="ALL" REINSTALLMODE="vamus"

属性区分大小写,其值必须用引号括起来。

中是否正确列出了所有文件,并提供了版本和日期信息?升级包中的版本号是否增加,日期是否变晚


对Windows Installer功能至关重要;默认情况下,没有版本信息的文件被视为在重新安装或升级期间不应覆盖的用户数据。因此,如果要用更高的版本号或更新的日期替换文件,升级是最简单的,并且不需要特殊的命令行选项。

只有3个第一位数字部分是有价值的,
所以MSI并没有在1.2.2.2和1.2.2.3之间产生差异,这是我罕见的否决票,但正如Jon Skeet所说,这是毫无帮助的。将REINSTALLMODE设置为vamus对于可能包含合并模块或以其他方式弄乱非您自己的文件的设置是危险的。它可能会降低系统组件的等级,Windows 7可能会积极尝试阻止这一点。如果文件丢失或版本较旧,请将a替换为o并使其成为vomus,以便安全地重新安装。我同意您关于重新安装模式的看法,但我认为没有必要投否决票。首先,我建议使用Rajeshaz09参数的正确形式。其次,他提到在他的小升级过程中没有安装文件,这通常发生在两个包中的文件版本相同时。所以用o代替a是行不通的。我几乎从不投反对票,除非我认为这些信息是危险的。我认为如果最终结果是有害的,那么精确性和语法正确性是不相关的。请提供更多信息。这是您自己的设置还是您正试图从第三方安装的设置?看起来您正在安装驱动程序。什么司机?他们签字了吗?如果是第三方产品,哪种产品?这是我的设置。我们的产品支持升级和降级。为了使客户端尽可能简单,我们选择了重新安装=全部重新安装模式=vamus,以便这些选项同时支持升级和降级。另一个重要的一点是,这个MSI没有单独的升级或下载信息。MSI有平面组件。MSI中的所有组件都已签名。版本通知
此外,还嵌入了反倾销。我的问题是1 windows installer在win7上的行为是否发生了变化?2安装程序是否仅将a.b.c作为版本信息?另一个重要的一点是,这个MSI没有单独的升级或下载信息。MSI有平面组件。重新安装=所有重新安装模式=vamus参数确保始终运行的msi版本组件进入安装目录。到目前为止,这种方法工作了近5年。只有win7有问题。若要重现此问题。。。1通过msiexec/i 1.2.2.2安装1.2.2.msi 2降级到1.2.2.1没有问题msiexec/i 1.2.2.1.msi重新安装=所有重新安装模式=vamus 3升级到1.2.2.2会导致问题msiexec/i 1.2.2.2.msi重新安装=所有重新安装模式=vamus。4重试以再次升级到1.2.2.2。这次没有问题。啊,很好。接下来有几个问题:在升级时是否有可能使用File1?我相信您已经考虑过并且可能已经计划过当MSI运行时程序本身正在运行的情况,但是Windows Installer本身也可能出现故障,例如,如果自定义操作同时而不是顺序运行…另一个观察结果。我在不同版本上运行了上述测试。->1.2.1.1和1.2.2.1之间的升级/降级按预期运行->1.2.1.1和1.2.1.2之间的升级/降级未按预期运行->1.2.2.1和1.2.2.2之间的升级/降级未按预期运行,如上所述windows安装程序正在考虑a.b.c.x和a.b.c.y之间的升级/降级导致windows-7上的问题windows Installer-5.0版本中是否引入了此新限制?同一个安装程序在xp上工作得很好。