Wix从Visual Studio安装程序替换安装

时间:2013-08-30 18:55:04

标签: visual-studio-2012 wix windows-installer

我有一个旧的安装程序,这是一个基本的Visual Studio安装项目,现在它已被WIX安装程序取代。新的Wix安装程序工作正常,期望我有必要。

许多客户端都安装了旧版本,现在,在我们产品的下一版本中,我们需要使用此Wix安装程序。

我需要Wix安装程序来替换旧安装,而不通过控制面板卸载以前的版本。

我尝试过像以前一样使用相同的产品代码,也更改了升级代码,但它不起作用。

是否有人知道是否可以使用 Wix安装程序 VS安装程序 替换 安装?

维克斯

<?define Product.UpgradeCode = "{60DA573D-4C8A-48CA-ADA5-9C130A7100E8}" ?>
<?define Product.ProductCode = "{1A65C362-E880-4F2A-ADEF-B1D83A87C914}" ?>

<Product Id="$(var.Product.ProductCode)"
           Name="My Application"
           Language="1033"
           Version="$(var.REVISION)"
           Manufacturer="My Manufacturer"
           UpgradeCode="$(var.Product.UpgradeCode)">
           ...
           ...
<MajorUpgrade Schedule="afterInstallInitialize" 
  DowngradeErrorMessage="A later version of MY PRODUCT is already installed." />

<Upgrade Id="$(var.Product.UpgradeCode)">
<UpgradeVersion Minimum="$(var.BUILD)" 
    IncludeMinimum="no" OnlyDetect="yes" 
    Property="NEWERVERSIONDETECTED" />
  <UpgradeVersion Maximum="$(var.PREVBUILD)" 
   IncludeMaximum="yes" OnlyDetect="no" 
   Property="OLDERVERSIONBEINGUPGRADED" />
</Upgrade>

错误消息

Error

2 个答案:

答案 0 :(得分:4)

该错误消息表示您的ProductCode未更改。您希望UpgradeCode相同,但您希望ProductCode在每次构建时都是唯一的。要实现此目的,请将其设置为“*”,编译器将在构建时生成一个。

如果您在“添加删除程序”中安装但获得2个条目,则表示您的MajorUpgrade规则存在问题。

答案 1 :(得分:0)

在 WiX v3.11.2 中,<MajorUpgrade> 可以代替 VS Setup Project 的设置。

在 Product.wxs 中,此代码有效。

<MajorUpgrade DowngradeErrorMessage="Downgrade Error" AllowSameVersionUpgrades="yes" />

并且相同的 UpgradeCode 是不够的用于升级过程。

How do I fix the upgrade logic of a wix setup after changing InstallScope to "perMachine"

例如,在我的项目中, InstallScope = "perMachine" 是 bad ,所以我删除了这个属性。

<Package  InstallScope="perMachine"