2

对于我们的 msi,我们没有在现有版本中提及 allusers 属性。所以默认情况下它按照用户进行。

我们的客户使用管理员用户 ID 安装了应用程序,并且该管理员离开了公司。因此,他的用户 ID 不再处于有效状态。

现在他们无法使用另一个管理员帐户迁移到较新的版本(因为它是按用户安装的)。

虽然我们可以更改我们的 msi 以支持所有用户,但它在迁移(重大升级)中不起作用。

似乎只有当我们提供不支持现有版本的全新版本时,我们才能解决该问题。

即使以前的 msi 是每个用户的,是否还有其他解决方法可以提及,现在应该进行重大升级吗?

我们在安装过程中使用 WIX 3.5。

4

1 回答 1

3

不幸的是,Windows 安装程序不支持“跨上下文”升级。正如您发现的,每机器包无法升级每用户包,每用户包不能升级每机器包。

您可以编写一个可执行文件来查找旧的 .msi 并使用 API 卸载它们,例如::MsiEnumRelatedProducts()查找产品然后::MsiConfigureProduct()删除它们。但是,如果没有用户帐户,我不确定您是否能够看到按用户安装的产品。

于 2013-03-27T12:46:36.333 回答