【发布时间】:2011-06-16 10:34:39
【问题描述】:
我有 2 个版本的产品“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)上遇到这个问题。 XP(x86 和 x64)没有问题。
我比较了 xp 和 win7 上的日志。我发现了以下差异。
经验: SetSourceFolder(Folder=1\PROGRA~1\company~1\product~1\drivers\|program files\companyname\productname\drivers)
win7: 执行操作:SetSourceFolder(Folder=C:\Windows\Installer\$PatchCache$\Managed\A7C0B53D545489A48A0183013BEF525E\1.2.2)
这是我的设置。我们的产品支持升级和降级。为了使客户端尽可能简单,我们选择 "REINSTALL=All REINSTALLMODE=vamus" ,以便这些选项同时支持升级和降级。另一个重要的一点是,这个 MSI 没有单独的升级或降级信息。 MSI 有平面组件。 MSI 中的所有组件都已签名。还嵌入了版本信息。 我的问题是 1) windows 安装程序的行为在 win7 上是否发生了变化? 2) 安装程序是否仅将 a.b.c 作为版本信息?之后会忽略吗?
另一个重要的一点是,这个 MSI 没有单独的升级或降级信息。 MSI 有平面组件。 “REINSTALL=All REINSTALLMODE=vamus”参数确保始终运行的 msi 版本组件进入安装目录。到目前为止,这种方法工作了将近 5 年。只有win7有问题。
要重现此问题... 1) 通过 msiexec /i 1.2.2.2.msi 安装 1.2.2.2 2) 降级到 1.2.2.1 没有问题 msiexec /i 1.2.2.1.msi REINSTALL=ALL REINSTALLMODE=vamus 3) 升级到 1.2.2.2 导致问题 msiexec /i 1.2.2.2.msi REINSTALL=ALL REINSTALLMODE=vamus 4) 重试再次升级到 1.2.2.2 。这次没有问题。
另一个观察结果是,MSI 中的一个组件说“comp1”有 2 个文件,比如 file1、file2。 File1 是组件 comp1 的关键路径。 在问题出现时(第 3 步),file1 没有得到更新。但 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 安装程序正在考虑最高 a.b.c 的版本。 a.b.c.x 和 a.b.c.y 之间的升级/降级导致 windows-7 出现问题
【问题讨论】:
-
请提供更多信息。这是您自己的设置还是您尝试从第三方安装的设置?看起来您正在安装驱动程序。什么驱动?他们签了吗?如果是第三方产品,是什么产品?
-
这是我的设置。我们的产品支持升级和降级。为了使客户端尽可能简单,我们选择 "REINSTALL=All REINSTALLMODE=vamus" ,以便这些选项同时支持升级和降级。另一个重要的一点是,这个 MSI 没有单独的升级或降级信息。 MSI 有平面组件。 MSI 中的所有组件都已签名。还嵌入了版本信息。我的问题是 1) windows 安装程序的行为在 win7 上是否发生了变化? 2) 安装程序是否仅将 a.b.c 作为版本信息?之后会忽略吗?
-
另一个重要的一点是,这个 MSI 没有单独的升级或降级信息。 MSI 有平面组件。 “REINSTALL=All REINSTALLMODE=vamus”参数确保始终运行的 msi 版本组件进入安装目录。到目前为止,这种方法工作了将近 5 年。只有win7有问题。
-
重现这个问题... 1) 通过 msiexec /i 1.2.2.2.msi 安装 1.2.2.2 2) 降级到 1.2.2.1 没有问题 msiexec /i 1.2.2.1.msi REINSTALL=ALL REINSTALLMODE=vamus 3) 升级到 1.2.2.2 会导致问题 msiexec /i 1.2.2.2.msi REINSTALL=ALL REINSTALLMODE=vamus。 4) 重试再次升级到 1.2.2.2 。这次没有问题。
标签: windows-installer reinstall