2013-03-27 47 views
2

对于我们的msi,我们没有提及现有版本中的所有用户属性。所以默认情况下它按用户进行。如何从每个用户更改为所有用户安装?

我们的客户使用管理员用户标识安装了该应用程序,该管理员离开了该公司。所以他的用户名不再处于有效状态。

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

尽管我们可以更改我们的msi以支持所有用户,但它不适用于迁移(主要升级)。

看来只有当我们给出全新的发布版本时,如果没有支持现有版本,我们可以解决这个问题。

是否有任何其他解决方法提及即使以前的微星是每个用户,它应该现在主要升级?

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

回答

3

不幸的是,Windows安装程序不支持“跨上下文”升级。正如您发现每台计算机软件包无法升级每个用户软件包,而每个用户软件包无法升级每台计算机软件包。

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

+0

Installshield具有一项功能,可以稍微调整以允许切换到每台计算机的安装。它涉及ISSetAllUsers自定义操作:http://stackoverflow.com/questions/12110987/windows-installer-uninstalling-previous-version-when-the-versions-differ-in-in/12291807#12291807 – 2014-03-25 02:12:30

相关问题