2012-03-15 215 views
1

我有一个插件应用程序A,使用Add-In express构建。它的安装程序是在Visual Studio安装项目中构建的。现在我已经将它包含在另一个全面的应用程序中,它的安装程序是使用高级安装程序构建的。如何在安装过程中卸载应用程序(MSI)

我们希望能够在安装综合应用程序B期间卸载A.根据Advanced Installer的用户指南“我的应用程序卸载时如何卸载另一个MSI软件包?”,我遵循指南,但它确实不适合我。

因此,我必须错过某些设置或在我的AIP中设置不正确。我不知道如何附加aip文件。我该如何解决这个问题?

+0

您引用的文章提供了卸载主应用程序时卸载另一个基于MSI的应用程序的说明。该文章未涉及您正在尝试执行的操作。 如果目标机器上已经安装了加载项,那么为什么在安装主应用程序之前需要卸载它(除非主应用程序正在安装不同的版本)? – 2012-03-15 15:22:34

+0

可以肯定的是,当您安装应用程序B时,您想要卸载应用程序A,是吗?因为在你的问题中,你正在引用Advanced Installer用户指南中的文章,其中介绍了如何在主应用程序的卸载期间卸载应用程序,在你的情况下是B. – 2012-03-15 15:24:39

+0

@Bogdan。是的,我想在安装B时卸载A。我无法从用户指南中找到完全相同的内容,所以我找到了我认为可以量身定制的文章以适合我的情况。不幸的是我无法让它工作。请让我知道如何做到这一点。谢谢 – toosensitive 2012-03-15 15:47:26

回答

3

解决方案非常简单。因为A,我可以看到的是一个MSI软件包,您可以直接进入高级安装程序中的升级页面(对于项目B),并使用“新建”按钮将MSI添加到列表中。

这会将应用程序A的升级代码添加到B软件包的升级表中,因此操作系统会认为B是A的升级版本,并且会自动将其删除。

编辑

添加自定义操作来运行类似 在msiexec.exe/x {21D0F841-65A2-4A42-AA56-D7EF238968DE}/QN ,然后添加一个扩展搜索(通过的UpgradeCode搜索) ,使用搜索结果来控制自定义操作。查看更多详细信息& chat

+1

其实我已经试过了。也不起作用。 :( – toosensitive 2012-03-15 16:03:58

+2

这是Microsoft提供的一种自动化支持,所以它应该可以工作。当这种情况跳过删除的唯一情况是,如果两个包的安装类型不同,即每个用户和每台机器,或者包B的版本A小于A. – 2012-03-15 16:09:03

+0

另外,我假设在Advanced Installer的升级页面中选择了“自动删除旧版本”选项,对于程序包B? – 2012-03-15 16:09:36

相关问题