簡體   English   中英

從WiX捆綁包安裝,使用MSI升級會導致安裝多個版本

[英]Install from WiX bundle, upgrade with MSI results in multiple versions installed

我有一個應用程序,其安裝程序可以兩種形式提供:

  1. MSI軟件包;
  2. 一個WiX捆綁包,其中包含該軟件包以及一些鏈接的必備組件。

大多數用戶將選擇安裝捆綁軟件,但我想保留手動安裝必備組件和MSI軟件包的可能性。

我的自動更新過程包括下載新的MSI軟件包並進行重大升級。 只要最初使用MSI軟件包安裝該應用程序,它就可以完美運行。 但是,如果從捆綁軟件中安裝了該應用程序,那么我最終會同時安裝兩個版本。

如何確保使用下載的MSI進行的升級可以正確替換或刪除原始捆綁包?


Bundle.wxs:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
     xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"
     xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
  <Bundle Name="The Product" Version="!(bind.packageVersion.TheProduct.Msi)" Manufacturer="TheCompany" UpgradeCode="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx">
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense">
      <bal:WixStandardBootstrapperApplication
          LicenseFile="Resources\license.rtf"
          LogoFile="Resources\logo.png" />
    </BootstrapperApplicationRef>

    <Chain>
      <PackageGroupRef Id="NetFx451Web" />
      <MsiPackage Id="TheProduct.Msi" SourceFile="$(var.TheProduct.Msi.TargetPath)" Vital="yes" Compressed="yes" />
    </Chain>
  </Bundle>
</Wix>

Product.wxs(MSI):

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Product Id="*" Name="TheProduct" Language="1033" Version="!(bind.fileVersion.TheProduct.dll)" Manufacturer="TheCompany" UpgradeCode="yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy">
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perUser" />

    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
    <MediaTemplate EmbedCab="yes" />
    <UIRef Id="WixUI_Minimal" />
  </Product>
    <!-- ... snip ... -->
</Wix>

.msi軟件包無法升級捆綁軟件; 只有另一個捆綁軟件可以做到。 但是.msi軟件包可以升級最初由捆綁軟件安裝的.msi軟件包。 您在ARP中獲得了兩個條目,而不是並排安裝了兩個軟件包。 ARPSYSTEMCOMPONENT的答案是正確的:使用ARPSYSTEMCOMPONENT確保.msi軟件包不可見,以匹配捆綁軟件的安裝方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM