如何卸载以前的版本并使用Wix Bundle安装最新版本
当我试图升级旧版本时,我正在使用wix Bundle安装Msi链,但没有卸载 请帮助我做下面的任何场景如何卸载以前的版本并使用Wix Bundle安装最新版本,wix,bootstrapper,burn,Wix,Bootstrapper,Burn,当我试图升级旧版本时,我正在使用wix Bundle安装Msi链,但没有卸载 请帮助我做下面的任何场景 如何在安装最新版本之前卸载以前的版本 始终升级到最新版本,在我的情况下,它可以是主要版本、次要版本或补丁版本 还有更多,然后只是卸载。首先,让我们看看你的版本控制。捆绑包本身有版本,每个MSI都有自己的版本。我希望,当有时间升级时,您必须升级整个捆绑包,而不必单独检查每个包,这可能会使升级更容易一些。所以现在,每个MSI都应该有Product>Upgrade属性集和Upgrade节点。这些值应
还有更多,然后只是卸载。首先,让我们看看你的版本控制。捆绑包本身有版本,每个MSI都有自己的版本。我希望,当有时间升级时,您必须升级整个捆绑包,而不必单独检查每个包,这可能会使升级更容易一些。所以现在,每个MSI都应该有
Product>Upgrade
属性集和Upgrade
节点。这些值应该相同。捆绑包应具有属性UpgradeCode
。这应该足以让您卸载以前的版本并安装新版本
现在,如果您想在UI中显示一些内容,可以转到引导程序应用程序并订阅各种Detect
事件。有一些与升级有关
以下是支持更新的MSI:
<Product Id="*" Name="$(var.ProductName)" Language="1033" Version="1.0.0.5" Manufacturer="$(var.Manufacturer)" Upgrade="GUID_HERE">
<Package InstallerVersion="450" Compressed="yes" InstallScope="perMachine" />
<Upgrade Id="SAME_GUID_HERE"/>
和燃烧:
<Bundle Name="$(var.ProductName)"
Version="1.0.0.5"
Manufacturer="$(var.Manufacturer)"
UpgradeCode="ANOTHER_GUID"
通过这种方式,我能够阻止多个引导程序窗口的出现。最终,没有程序出现,我们只看到微星 谢谢你,我对bundle和msi使用了相同的版本。没问题,我可以更改代码以只检查捆绑包版本。我不想在UI上显示任何内容,用户将单击“仅安装”,以便捆绑包必须通过删除旧版本进行升级。你能为我提供msi和burn的示例代码吗?谢谢Andrey,我可以检查并让你知道你能澄清一件事吗,我需要在msi中添加主要的升级元素吗?我的代码中有它,但我从来没有看到过消息,因此,您也可以添加它。如果您希望MSI自动升级,则必须在WIXXML中定义元素或元素。元素是一种偷偷实现标记的方法,它自动引用产品的升级GUID并填充一些附加信息。我更喜欢使用元素而不是元素。我使用的是major元素,但它没有升级,您能告诉我如何使用major元素吗?如果您提供示例代码,那就太好了。如果您在捆绑的msi中实施windows installer主要升级,则在安装新版本之前不必卸载。同样值得注意的是,wix引导程序将正确升级仅在捆绑包版本的第四部分有所不同的版本。要使wix捆绑包正确升级,它们的版本必须不同,并且必须共享相同的升级代码