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 <> "" AND PASSWORD > <> ""</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="&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&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.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