我在客户端位置安装了msi . 现在我需要提供升级 . 当我用新版本准备新的msi时,它说已经安装了产品 . 如何升级产品 .
Existing product msi(wix) info:
ProductVersion : 0.0.0.1
PackageCode {B3B7B3A9-AF58-41C0-B3BD-F5ED1B5DE914}
UpgradeCode {63B4B483-1851-4F32-BEFA-E7D73C4CE0DE}
ProductCode {1F3EFF43-C480-4956-B076-76437B6313E6}
我的wix看起来像这样 .
<?xml version="1.0" encoding="utf-8"?>
<?define ProductVersion = "0.0.0.2"?>
<?define UpgradeCode = "63b4b483-1851-4f32-befa-e7d73c4ce0de"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<Product Id="*" Name="Calculator" Language="1033" Version="$(var.ProductVersion)" Manufacturer="ABCD" UpgradeCode="$(var.UpgradeCode)">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<Upgrade Id="$(var.UpgradeCode)">
<!-- Detect older product versions -->
<UpgradeVersion OnlyDetect="no" IncludeMinimum="yes" IncludeMaximum="yes" Minimum="0.0.0.1" Maximum="$(var.ProductVersion)" Property="PREVIOUSVERSIONSINSTALLED" />
<!-- Detect newer product versions -->
<UpgradeVersion OnlyDetect="yes" IncludeMinimum="no" Minimum="$(var.ProductVersion)" Property="NEWERVERSIONDETECTED" />
</Upgrade>
<!-- Exits successfully in the case newer version are already installed -->
<CustomActionRef Id="WixExitEarlyWithSuccess" />
and continues....
我的代码有什么问题 . 我想从此获得升级选项 .
1 回答
如果新MSI的ProductCode或PackageCode与前一个MSI相同,则表示已安装该产品 . 如果他们都改变了,我的帖子就不清楚了 .
此外,除非您在ProductVersion的前三个字段中更改了某些内容,否则您将无法升级 . 这是Windows Installer的行为 .
http://msdn.microsoft.com/en-us/library/aa370859(v=vs.85).aspx