我已经使用Wix生成的安装程序交付了我的软件版本1.0版,现在我想交付/传播1.1版。如果可能的话,我想避免告诉人们在安装1.1之前先手动删除1.0。

但是,我不得不修改 InstallScope, ,从 perUserperMachine 出于各种技术原因。没什么大不了的,除了它会升级麻烦。

我看到的是同一件事 这个帖子 提到,即使您已经完成了所有 适当的工作 要实现升级,完成后,您会在安装程序列表上看到两个不同的条目,一个是1.0,另一个是1.1。这会导致软件中的问题。

因此,似乎基本的“删除先前的版本”逻辑在这里不起作用,因此我还需要一些其他方法来将上一个版本卸载。我试图沿着发射适当的道路 msiexec /x 命令通过A删除上一个版本 ShellExecute CustomAction, ,但是除非我缺少某些东西 msiexec 在另一个跑步的中间命令。

然后我偶然发现了 这一页 其中详细介绍了一种“链接” MSI在一起的方法:

setupbld.exe -out $(TargetDir)setup.exe -msu FirstInstaller.msi -msu SecondInstaller.msi -setup $(ProjectDir)setup.exe

有人知道如何使用WIX创建MSI的唯一目的是卸载软件吗?还是我攻击这个问题完全错误?

有帮助吗?

解决方案

使用此WIX作为1.1版本的一部分卸载以前的版本。我不确定为什么您需要将MSI链接在一起。

如何实现WIX安装程序升级?

编辑:我错过了安装Scope要求的更改。因此,真正需要的是Bootstrapper。

我在此处发布了如何创建Bootstrapper: 我需要一个Wix Bootstrapper项目,该项目安装我的软件和先决条件

其他提示

installfinalize 在Installexecutsequence中。而且,是 返回 应该 异步 (异步执行,不要等待返回)。

通过这些设置,卸载使用不同的异步过程,避免了冲突。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top