I am trying to create a bundle to install an msi that does not support
upgrades, but no warning is shown to the user.  If I try to run the msi
by hand, I see the error "Another version of ... ", but running the
bundle just shows a random guid for the msi is being processed, the
bundle completes without error, and the application remains at it's
previous version.

How can I alert the user, or better ... uninstall the previous version
before installing the new one?

There is nothing I can easily search for in the registry, as the msi
uses a random guid for each revision.  While the upgrade code remains
the same, I searched the registry and did not find neither hide nor hair
of it.  If I am to detect the previous installed version I need a way to
find the current installation.

<?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="$(var.MyInstallerName)"
    Version="$(var.BundleVersion)"
    Manufacturer="$(var.MyCompanyName)"
    Copyright="(c) All rights reserved."
    UpgradeCode="{$(var.Guid_Bundle)}"
    HelpTelephone="$(var.HelpPhone)"
    HelpUrl="$(var.HelpUrl)"
    UpdateUrl="$(var.UpdateUrl)"
    AboutUrl="$(var.AboutUrl)"
    Condition="((VersionNT >= v5.1) AND (ServicePackLevel >= 3)) OR ((VersionNT 
>= v5.2) AND (ServicePackLevel >= 2)) OR (VersionNT >= v6.0)"
    IconSourceFile="$(var.ProdIcon)"
  >

    <!-- Display License and Logo
         The URL is to the EULA embeded in the installer -->
    <BootstrapperApplicationRef
      Id="WixStandardBootstrapperApplication.HyperlinkLicense"
    >
      <bal:WixStandardBootstrapperApplication
        LicenseUrl="EULA.html"
        LogoFile="$(var.ProdIcon)"
        SuppressRepair="yes"
        SuppressOptionsUI="yes"
      />      
      <Payload Name="EULA.html" SourceFile="$(var.EULA)"/>
    </BootstrapperApplicationRef>

    <!-- BEGIN Conditional Def -->
    <!-- Check if WinPcap is installed and at least some version -->
    <util:RegistrySearch
      Id="RegistrySearchWinPcapHas" 
      Variable="WinPcapInstalled"
      Root="HKLM"
        Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WinPcapInst"
      Result="exists"
    />
    <util:RegistrySearch
      Id="RegistrySearchWinPcapMajor" 
      Variable="WinPcapVersionMajor"
      Root="HKLM"
        Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WinPcapInst"
      Value="VersionMajor"
      Format="raw"
      Result="value"
    />
    <util:RegistrySearch
      Id="RegistrySearchWinPcapMinor" 
      Variable="WinPcapVersionMinor"
      Root="HKLM"
        Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WinPcapInst"
      Value="VersionMinor"
      Format="raw"
      Result="value"
    />
    <!-- Check if Bounjour Print Services is installed -->
    <util:RegistrySearch
      Id="RegistrySearchBonjourHas" 
      Variable="BonjourDLL"
      Root="HKLM"
        Key="SOFTWARE\Classes\AppID\Bonjour.DLL"
      Result="exists"
    />
    <util:RegistrySearch
      Id="RegistrySearchBonjourValue" 
      Variable="BounjourVersion"
      Root="HKLM"
        Key="SOFTWARE\Apple Inc.\Bonjour"
      Value="Version"
      Format="raw"
      Result="value"
    />
    <!-- Check if Proxy is installed and at least some version
    There is no reliable way to detect version
    -->
    <!-- Check if Program is installed and at least some version
    There is no reliable way to detect version
    -->
    <!-- END Conditional Def -->

    <!-- Begin Chain -->
    <Chain>
      <!-- Will not install if 4.1.3 or better is installed
           If installing, download from Internet -->
      <ExePackage 
        Id="WinPcap"
        Name="WinPcap_4_1_3.exe"
        Vital="no"
        Compressed="no"
        DownloadUrl="http://www.winpcap.org/install/bin/WinPcap_4_1_3.exe";
        InstallCondition="NOT WinPcapInstalled OR ( 4 > WinPcapVersionMajor AND 
1 > WinPcapVersionMinor)"
        Permanent="yes"
      >
        <RemotePayload
          Description="WinPcap 4.1.3 installer" 
          Hash="e2516fcd1573e70334c8f50bee5241cdfdf48a00" 
          ProductName="WinPcap 4.1.3" 
          Size="915128" 
          Version="4.1.0.2980"
        />
      </ExePackage>
      <!-- Will not install if 2.0.2.0 or better is installed
           If installing download from the Internet -->
      <ExePackage
        Id="BonjourPSSetup"
        Name="BonjourPSSetup.exe"
        Vital="no"
        Compressed="no"
        
DownloadUrl="http://support.apple.com/downloads/DL999/en_US/BonjourPSSetup.exe";
        InstallCondition="NOT BonjourDLL OR v2.0.2.0 > BonjourVersion"
        Permanent="yes"
      >
        <RemotePayload
          ProductName="BonjourPrintServices"
          Description="Bonjour Printer Services Installer"
          Size="5436744"
          Version="2.0.2.0"
          Hash="847f39e0ea80d2a4d902fe59657e18f5bc32a8cb" 
      />
      </ExePackage>
      <!-- Will not install if already installed 
           msi embeded in installer -->
      <MsiPackage
        Id="MyProxy"
        Name="$(var.MSI_Proxy)"
        DisplayName="Proxy"
        Description="Proxy Installation"
        DisplayInternalUI="yes"
        EnableFeatureSelection="yes"
        Vital="yes"
        Visible="yes"
        ForcePerMachine="yes"
        Cache="yes"
        Compressed="yes"
        Permanent="yes"
        SourceFile="..\Installers\$(var.MSI_Proxy)"
      />
      <!-- Will not install if already installed and 32bit -->
      <MsiPackage
        Id="MyProgramInstaller"
        Name="$(var.MSI_Product)"
        DisplayName="Compass"
        Description="Compass Installation"
        DisplayInternalUI="yes"
        EnableFeatureSelection="yes"
        Vital="yes"
        Visible="no"
        ForcePerMachine="yes"
        Cache="yes"
        Compressed="yes"
        Permanent="no"
        SourceFile="..\Installers\$(var.MSI_Product)"
      />
    </Chain>
  </Bundle>
</Wix>



NOTICE: This email may contain confidential information.  Please see 
http://www.meyersound.com/confidential/ for our complete policy.

------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to