6

我正在创建一个 Visual Studio 安装项目。我想从我的组件安装中卸载系统中的另一个组件。另一个组件是从我自己使用 Visual Studio 创建的设置中安装的。

目前,当我从组件的安装操作中调用其他组件的卸载时,我收到错误代码:1618 (another MSI already running).

谁能建议我另一种方法来解决这个问题?

4

3 回答 3

1

如果您不需要实际运行其他组件的卸载,您可以使用自定义操作来删除您打算替换的文件/文件夹。

使用自定义操作将强制您执行卸载程序将为您执行的所有清理操作。

是您正在更换某些东西,还是只是因为安装了完全不同的东西而试图卸载某些东西?

MSDN 自定义操作演练

我还阅读了 Phil Wilson 的一些文章,这些文章对自定义操作很有帮助:
Phil Wilson on Custom Actions

于 2008-10-13T12:32:23.440 回答
1

我遇到了一个类似的问题,需要多个安装一起运行,并且找不到递归运行 MsiExec 的方法。我使用的解决方案是将安装程序与一个脚本捆绑在一起,该脚本将运行 MsiExec 一次以安装/卸载旧软件包,然后再次运行新的安装程序。客户端必须运行脚本才能安装。

如果你找到更好的方法,请告诉我。

于 2009-04-08T17:56:01.243 回答
0

我认为您可以uninst.exe在安装程序开始时通过 shell 命令运行该程序.....

于 2008-11-05T03:55:36.143 回答