Thanks - this is helpful.  The key issue is #3 - we aren't incrementing the 
first three but the fourth.

The other installers are WIX generated MSI's - and one is incrementing the 
third node.  But one isn't - I just verified it DOES uninstall even when only 
the fourth matches.  I'll show an excerpt of the code FWIW.
I know we've been using the version numbering wrong - I've been trying to get 
it changed - but the Product Manager didn't want to change the way they've 
always done it (previously they used a VS Setup Project which evidently also 
did force an uninstall even when the first 3 matched)

Here's what my other installer (that does uninstall even if the first 3 match)

    <Upgrade Id="{52E1A44E-FE13-48CE-8599-CDEDDB569F70}" >
      <!--<UpgradeVersion OnlyDetect="yes" Minimum="$(var.Version)" 
Property="NEWERVERSIONDETECTED" IncludeMinimum="no" />
      <UpgradeVersion OnlyDetect="no" Maximum="$(var.Version)" 
Property="OLDERVERSIONBEINGUPGRADED" IncludeMaximum="no" />-->
      <UpgradeVersion
            Minimum="1.0.0.0" Maximum="99.0.0.0"
            Property="PREVIOUSVERSIONSINSTALLED"
           IncludeMinimum="yes" IncludeMaximum="no" />
    </Upgrade>
    <Property Id="PREVIOUSVERSIONSINSTALLED" Secure="yes" />
    <!--<Property Id="ALLUSERS" Value="2" />-->
    <InstallExecuteSequence>
      <RemoveExistingProducts After="InstallInitialize" />
    </InstallExecuteSequence>

And the UI
<UI Id="WixUI_Minimal">
      <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
      <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
      <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />

      <Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
      <Property Id="WixUI_Mode" Value="Minimal" />

      <DialogRef Id="ErrorDlg" />
      <DialogRef Id="FatalError" />
      <DialogRef Id="FilesInUse" />
      <DialogRef Id="MsiRMFilesInUse" />
      <DialogRef Id="PrepareDlg" />
      <DialogRef Id="ProgressDlg" />
      <DialogRef Id="ResumeDlg" />
      <DialogRef Id="UserExit" />

      <!-- This is the welcome dialog you specified-->
      <DialogRef Id="WelcomeDlg" />

      <!-- Hook the new welcome dialog to the next one in the stack-->
      <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" 
Value="PrepareDlg">1</Publish>

      <Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" 
Value="Return" Order="999">1</Publish>

      <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" 
Value="MaintenanceTypeDlg">1</Publish>

      <Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" 
Value="MaintenanceTypeDlg">1</Publish>

      <Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" 
Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
      <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" 
Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
      <Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" 
Value="MaintenanceWelcomeDlg">1</Publish>

      <Property Id="ARPNOMODIFY" Value="1" />
    </UI>

    <UIRef Id="WixUI_Common" />


-----Original Message-----
From: Phil Wilson [mailto:phildgwil...@gmail.com]
Sent: Friday, September 20, 2013 9:45 AM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Getting Duplicate Entries in Add/Remove Programs

The rules are:
1. ProductCode different to previous version.
2. UpgradeCode the same.
3. ProductVersion incremented in the first three digits.
http://msdn.microsoft.com/en-us/library/windows/desktop/aa370859(v=vs.85).aspx
4. The InstallScope (or whatever you used to set the ALLUSERS property) must be 
the same as the already installed product.

A verbose log should tell you which, and the ProductVersion comment about 
"other installers" is not relevant if they were not MSI setups, see the link 
there.

Phil Wilson


On Fri, Sep 20, 2013 at 6:46 AM, Daniel Sniderman <dani...@magenic.com>wrote:

> 1) $(var.Version) is set in properties as Version=$(Version) which is
> passed via TFS.  This works fine in all my other builds
> 2) we are incrementing the last node (3.8.0.40 to 3.8.0.41) which has
> never been in an issue in other installers.  I will try incrementing
> another node to see if that makes a difference
> 3) I have tried MajorUpgrade - and a number of other things that
> hasn't worked.  - I'll try it again and post the next.
>
> The main difference from this installer from my others
>
> 1) It's a Windows Service as opposed to Windows Forms (not that that
> should matter)
> 2) The UI code at the bottom -which you can see is to set the
> user/account for the installer and permissions on the folder.
>
> Thanks!
>
> -----Original Message-----
> From: Edwin Castro [mailto:0ptikgh...@gmx.us]
> Sent: Thursday, September 19, 2013 7:56 PM
> To: wix-users@lists.sourceforge.net
> Subject: Re: [WiX-users] Getting Duplicate Entries in Add/Remove
> Programs
>
> I assume you are getting duplicate entries after you attempt an upgrade.
> If so, how is $(var.Version) changing between upgrade attempts?
>
> Be aware that Windows Installer only takes the first THREE parts of
> the ProductVersion into consideration. ProductVersions 1.2.3.4 and
> 1.2.3.5 are the same ProductVersion to Windows Installer.
>
> /Wix/Product/@UpgradeCode does not match /Wix/Product/Upgrade/@Id. I
> expected them to be the same.
>
> I also expected /Wix/Product/Upgrade/UpgradeVersion/@Maximum ==
> $(var.Version) instead of 99.0.0.0.
>
> Consider using the <MajorUprade/> element instead of handcrafting your
> own Upgrade entries.
>
> On 9/19/13 5:11 PM, Daniel Sniderman wrote:
> > Not sure what I'm doing wrong.  Here's my XML,  I've tried other
> suggestions I've found on this list, Stack Overflow etc - but nothing
> I do makes a difference.
> >
> > Thanks!
> >
> >
> > <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi";
> >      xmlns:util="http://schemas.microsoft.com/wix/UtilExtension";>
> >   <Product Id="*" Language="1033" Version="$(var.Version)"
> Manufacturer="Abbott Laboratories" Name="ActivityService"
>  UpgradeCode="89071eb3-16a3-4c6b-bd1d-e6a97c4359db">
> >     <Package Compressed="yes" InstallerVersion="300" Languages="1033"
> > Manufacturer="Abbott Laboratories"  InstallScope="perMachine"  />
> >
> >     <Media Id="1" Cabinet="media1.cab" EmbedCab="yes" />
> >     <Property Id="PREVIOUSVERSIONSINSTALLED" Secure="yes" />
> >     <Upgrade Id="{43D6C7B1-E6C5-4F3B-89D8-B3FA2002CE7C}">
> >       <UpgradeVersion
> >          Minimum="1.0.0.0" Maximum="99.0.0.0"
> >          Property="PREVIOUSVERSIONSINSTALLED"
> >          IncludeMinimum="yes" IncludeMaximum="no" />
> >     </Upgrade>
> >     <InstallExecuteSequence>
> >       <RemoveExistingProducts After="InstallInitialize" />
> >     </InstallExecuteSequence>
> >     <Directory Id="TARGETDIR" Name="SourceDir">
> >       <Directory Id="ACTIVITY_SERVICE" Name="ActivityService">
> >       </Directory>
> >     </Directory>
> >     <Feature Id="ProductFeature" Title="ActivityServiceSetup" Level="1"
> Description="CMSNext Activity Service"
> >               Display="expand"  ConfigurableDirectory="ACTIVITY_SERVICE">
> >       <ComponentGroupRef Id="ACTIVITY_SERVICE" />
> >       <Component Id="comp_28026FEE0C3F46F2AD6898511FD42690"
> Guid="31E1916C-C699-48CA-BCFB-B2542D61EFB9"
> Directory="ACTIVITY_SERVICE">
> >         <File Id="file_2DD0F42F6505433D9693CCC118B731F0" Checksum="yes"
> KeyPath="yes"
> Source="$(var.ActvityServiceWindowsSvc.TargetDir)\ActvityServiceWindowsSvc.exe"
> />
> >         <CreateFolder>
> >           <util:PermissionEx User="[ACCOUNT]" GenericAll="yes" />
> >         </CreateFolder>
> >
> >         <ServiceInstall Id="ServiceInstaller"
> >                     Type="ownProcess"
> >                     Vital="yes"
> >                     Name="CMSNext Activity Service"
> >                     DisplayName="CMSNext Activity Service"
> >                     Description="CMSNext Service to send message to
> > GIS
> Hub when tickets are inserted or updated"
> >                     Start="auto"
> >                     ErrorControl="normal"
> >                     Interactive="no"
> >                     Account="[ACCOUNT]"
> >                     Password="[PASSWORD]"
> >       >
> >         </ServiceInstall>
> >         <ServiceControl Id="StopInstall"
> >                         Name="CMSNext Activity Service"
> >                         Remove="uninstall"
> >                         Stop="both"
> >                         Wait="yes">
> >         </ServiceControl>
> >       </Component>
> >     </Feature>
> >     <!-- The WIXUI_INSTALLDIR property has to be set to the installation
> >          directory so the user can change it in the WiXUI_InstallDir
> >          sequence.
> >
> >     This requires a reference to WixUIExtension
> >          -->
> >
> >     <!--<Property Id="WIXUI_INSTALLDIR" Value="ACTIVITY_SERVICE" />
> >     <UI>
> >       <UIRef Id="WixUI_InstallDir" />
> >     </UI>-->
> >     <UIRef Id="WixUI_ErrorProgressText"/>
> >     <UIRef Id="WixUI_Common" />
> >
> >     <Binary Id="WarningIcon" SourceFile="alert.jpg"/>
> >
> >     <UI Id="MyWixUI_FeatureTree">
> >       <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
> >       <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
> >       <Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
> >       <Property Id="WixUI_Mode" Value="FeatureTree" />
> >
> >       <DialogRef Id="ErrorDlg" />
> >       <DialogRef Id="FatalError" />
> >       <DialogRef Id="FilesInUse" />
> >       <DialogRef Id="MsiRMFilesInUse" />
> >       <DialogRef Id="PrepareDlg" />
> >       <DialogRef Id="ProgressDlg" />
> >       <DialogRef Id="ResumeDlg" />
> >       <DialogRef Id="UserExit" />
> >
> >       <Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog"
> > Value="Return" Order="999">1</Publish>
> >
> >       <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog"
> > Value="LicenseAgreementDlg">1</Publish>
> >
> >       <Publish Dialog="LicenseAgreementDlg" Control="Back"
> Event="NewDialog" Value="WelcomeDlg">1</Publish>
> >       <Publish Dialog="LicenseAgreementDlg" Control="Next"
> > Event="NewDialog" Value="CustomizeDlg">LicenseAccepted =
> > "1"</Publish>
> >
> >       <Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog"
> Value="MaintenanceTypeDlg" Order="1">Installed</Publish>
> >       <Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog"
> Value="LicenseAgreementDlg" Order="2">NOT Installed</Publish>
> >       <Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog"
> > Value="ServiceAccountDlg" Order="1">1</Publish>
> >
> >       <Publish Dialog="ServiceAccountDlg" Control="Back"
> Event="NewDialog" Value="CustomizeDlg">1</Publish>
> >       <Publish Dialog="ServiceAccountDlg" Control="Next"
> > Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
> >
> >       <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog"
> Value="ServiceAccountDlg" Order="1">NOT Installed OR WixUI_InstallMode
> = "Change"</Publish>
> >       <Publish Dialog="VerifyReadyDlg" Control="Back"
> > Event="NewDialog" Value="MaintenanceTypeDlg"
> > Order="2">Installed</Publish>
> >
> >       <Publish Dialog="MaintenanceWelcomeDlg" Control="Next"
> > Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>
> >
> >       <Publish Dialog="MaintenanceTypeDlg" Control="ChangeButton"
> Event="NewDialog" Value="CustomizeDlg">1</Publish>
> >       <Publish Dialog="MaintenanceTypeDlg" Control="RepairButton"
> Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
> >       <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton"
> Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
> >       <Publish Dialog="MaintenanceTypeDlg" Control="Back"
> > Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish>
> >
> >       <Dialog Id="ServiceAccountDlg" Width="370" Height="270"
> Title="[ProductName] Setup">
> >         <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56"
> Height="17" Text="!(loc.WixUIBack)" />
> >         <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56"
> Height="17" Default="yes" Text="!(loc.WixUINext)">
> >           <Condition Action="disable"><![CDATA[ACCOUNT = "" OR
> > PASSWORD
> = ""]]></Condition>
> >           <Condition Action="enable">ACCOUNT &lt;&gt; "" AND
> > PASSWORD &lt;&gt; ""</Condition>
> >
> >         </Control>
> >         <Control Id="Cancel" Type="PushButton" X="304" Y="243"
> Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
> >           <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
> >
> >         </Control>
> >         <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370"
> Height="44" TabSkip="no" Text="WixUI_Bmp_Banner" />
> >         <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370"
> Height="0" />
> >         <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370"
> Height="0" />
> >         <Control Id="Description" Type="Text" X="25" Y="23"
> > Width="280" Height="15" Transparent="yes" NoPrefix="yes" Text="Enter
> > service account details.">
> >
> >         </Control>
> >         <Control Id="Title" Type="Text" X="15" Y="6" Width="200"
> Height="15" Transparent="yes" NoPrefix="yes"
> Text="{\WixUI_Font_Title}Service account" />
> >         <Control Type="Text" Width="322" Height="26" X="25" Y="56"
> > Id="BodyLabel" Text="Specify the logon account for the [ProductName]
> > service." NoPrefix="yes">
> >
> >         </Control>
> >         <Control Type="Text" Width="275" Height="10" X="25" Y="98"
> Id="AccountLabel" Text="&amp;Account name (Example: domain\user or
> user@domain):" />
> >         <Control Type="Edit" Width="194" Height="15" X="25" Y="111"
> Id="AccountTextbox" Property="ACCOUNT" />
> >         <Control Type="Text" Width="275" Height="10" X="25" Y="135"
> Id="PasswordLabel" Text="Pa&amp;ssword:" />
> >         <Control Type="Edit" Width="194" Height="15" X="25" Y="148"
> > Id="PasswordTextbox" Property="PASSWORD" Password="yes" />
> >
> >         <Control Width="12" Height="12" FixedSize="yes" Type="Bitmap"
> X="25" Y="170" Id="Warning" Text="WarningIcon"/>
> >         <Control Id="WarningLabel" Type="Text" X="40" Y="170"
> > Width="200" Height="40" Text="The account entered here will not be
> > validated. Make sure that the account details entered are correct."
> > />
> >
> >       </Dialog>
> >
> >     </UI>
> >
> >   </Product>
> > </Wix>
> >
> > --------------------------------------------------------------------
> > --
> > -------- LIMITED TIME SALE - Full Year of Microsoft Training For
> > Just $49.99!
> > 1,500+ hours of tutorials including VisualStudio 2012, Windows 8,
> > SharePoint 2013, SQL 2012, MVC 4, more. BEST VALUE: New
> > Multi-Library Power Pack includes Mobile, Cloud, Java, and UX
> > Design. Lowest price
> ever! Ends 9/20/13.
> > http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg
> > .c lktrk _______________________________________________
> > WiX-users mailing list
> > WiX-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wix-users
> >
>
>
>
> ----------------------------------------------------------------------
> -------- LIMITED TIME SALE - Full Year of Microsoft Training For Just
> $49.99!
> 1,500+ hours of tutorials including VisualStudio 2012, Windows 8,
> SharePoint 2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library
> Power Pack includes Mobile, Cloud, Java, and UX Design. Lowest price
> ever! Ends 9/20/13.
> http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.c
> lktrk _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
>
> ----------------------------------------------------------------------
> -------- LIMITED TIME SALE - Full Year of Microsoft Training For Just
> $49.99!
> 1,500+ hours of tutorials including VisualStudio 2012, Windows 8,
> SharePoint 2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library
> Power Pack includes Mobile, Cloud, Java, and UX Design. Lowest price
> ever! Ends 9/20/13.
> http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.c
> lktrk _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
------------------------------------------------------------------------------
LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!
1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint 
2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes 
Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13.
http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

------------------------------------------------------------------------------
LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!
1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint
2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes
Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. 
http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to