I logged the installation, and the first time in it that the UpgradeCode-GUID
shows up is at the end of the log when registering. What I did find that seems
odd to me is this:
Action start 18:40:42: FindRelatedProducts.
MSI (c) (48:B4) [18:40:42:744]: FindRelatedProducts: current install is
per-machine. Related install for product
'{32A5C88F-600B-4B2C-B539-AB71A1CB04D1}' is per-user. Skipping...
MSI (c) (48:B4) [18:40:42:744]: FindRelatedProducts: current install is
per-machine. Related install for product
'{32A5C88F-600B-4B2C-B539-AB71A1CB04D1}' is per-user. Skipping...
Action ended 18:40:42: FindRelatedProducts. Return value 1.
This has me thinking it finds the previous product, but decides to skip
upgrading because it was per-user installed. This is like a riddle to me. I
think I am installing per-machine with this one because there were some issues
doing it per-user. Before thinking too hard about this, could
per-machine/per-user difference that be the very issue causing it to create two
installations? I've only got 1 user-account on this machine that I'm logged on
as and used it to install 4.2.0 and 4.3.0 back-to-back, quite a many times by
now. :-)
Best Regards,
Tom
> From: n...@x2systems.com
> To: wix-users@lists.sourceforge.net
> Date: Mon, 29 Jul 2013 15:16:44 +0000
> Subject: Re: [WiX-users] Remove Existing Products - Not Happening
>
> Correct the RemoveExistingProducts goes as well.
>
> I would expect scheduling it after afterInstallValidate should give what you
> expect. One thing to check is that upgrade code is the same, product code and
> package code are different between the two versions (given your previous code
> snippet that looks to be the case).
>
> I'd also run the upgrade with logging and see what that says is happening, it
> maybe that the uninstall is failing.
>
> Neil
>
> -----Original Message-----
> From: Tom - [mailto:mittegetm...@hotmail.com]
> Sent: 29 July 2013 15:35
> To: General discussion for Windows Installer XML toolset.
> Subject: Re: [WiX-users] Remove Existing Products - Not Happening
>
> Gentlemen,
>
> Thank you for your replies. MajorUpgrade seemed simple enough, so I added
> this:
>
> <MajorUpgrade DowngradeErrorMessage="A newer version of Product Name Removed
> is already installed."/>
>
> Documentation gave me the impression I could remove this portion and so I
> did:
>
> <RemoveExistingProducts After="InstallInitialize" />
> <InstallExecute After="RemoveExistingProducts" />
>
> I've also tried the suggestion on the slightly larger block of code using
> Upgrade-element. These two approaches produce the same results when I've got
> version 4.2.0 installed and attempt to install 4.3.0:
>
> - files are replaced in the installation directory only when
> AssemblyFileVersion is greater than the existing file's AssemblyFileVersion;
> I expected it to remove all files and put in the new ones.
> - two entries for the application are in Add/Remove Programs and two
> shortcuts are on the desktop; I expected it to remove the 4.2.0 entries in
> Add/Remove Programs and so forth.
>
> The documentation on MajorUpgrade about scheduling says:
>
> "This scheduling removes the installed product entirely before installing the
> upgrade product. "
>
> However, it would appear not since it selectively replaces files based on
> AssemblyFileVersion. There is one thing different between 4.2.0 and 4.3.0 and
> it's the publisher's name (that appears in Add/Remove Programs).
> I changed it to be identical, but it's still no difference. I've tried
> comparing 4.2.0 and 4.3.0 installers through Orca, but the magnitude of
> information in the two is so different in the Property-table. This is what
> the Upgrade-table looks like, though:
>
> // Version 4.2.0
> {17652B67-2C4F-4752-88CE-0E300DEA4C2F} 4.2.0 0 PREVIOUSVERSIONSINSTALLED
> {17652B67-2C4F-4752-88CE-0E300DEA4C2F} 4.2.0 258 NEWERPRODUCTFOUND
>
> // Version 4.3.0
> {17652B67-2C4F-4752-88CE-0E300DEA4C2F} 4.3.0 1 WIX_UPGRADE_DETECTED
> {17652B67-2C4F-4752-88CE-0E300DEA4C2F} 4.3.0 2 WIX_DOWNGRADE_DETECTED
>
> Then InstallExecuteSequence differs as well:
>
> // Version 4.2.0
> InstallValidate 1400
> InstallInitialize 1500
> RemoveExistingProducts 1525
>
> // Version 4.3.0
> InstallValidate 1400
> RemoveExistingProducts 1401
> InstallInitialize 1500
>
> The installation sequence reminded me we've got a JScript, as suggested by
> Microsoft, to fix a bug in the sequencing of the installation, as described
> by them at:
>
> http://connect.microsoft.com/VisualStudio/feedback/details/559575/problem-with-installing-and-removing-previous-versions-after-upgrading-my-setup-project-to-vs2010
>
> But that's version 4.2.0. RemoveExistingProducts in 1401 for 4.3.0 looks
> great as after "InstallValidate" as is default by MajorUpgrade-element. This
> is driving me crazy. Any more ideas what could be wrong here?
>
> Thank you,
>
> Tom
>
> > From: n...@x2systems.com
> > To: wix-users@lists.sourceforge.net
> > Date: Mon, 29 Jul 2013 12:31:37 +0000
> > Subject: Re: [WiX-users] Remove Existing Products - Not Happening
> >
> > MajorUpgrade element is a lot simpler plus you have unrelated code in
> > this sample.
> >
> >
> > Neil
> >
> >
> > >Try the following:
> > >
> > >Add upgrade details just above <InstallExecuteSequence> element.
> > >The following will block install if newer version detected, and will
> > >remove older version if detected.
> > >
> > > <Upgrade Id="17652B67-2C4F-4752-88CE-0E300DEA4C2F"> <!-- YOUR
> > >UPGRADE CODE -->
> > > <UpgradeVersion OnlyDetect="yes" Minimum="4.3.0"
> > >Property="NEWERVERSIONDETECTED" IncludeMinimum="no" /> <!-- Minimum =
> > >YOUR VERSION -->
> > > <UpgradeVersion OnlyDetect="no" Minimum="0.0.0" Maximum="4.3.0"
> > >Property="OLDERVERSIONBEINGUPGRADED" IncludeMinimum="yes"
> > >IncludeMaximum="yes" /> <!-- Maximum = YOUR VERSION -->
> > > </Upgrade>
> > >
> > > <InstallExecuteSequence>
> > > <RemoveExistingProducts After="InstallInitialize" />
> > > <InstallExecute After="RemoveExistingProducts" />
> > > <Custom Action="validateSqlServer"
> > >Before="validateProductDb">NOT Installed</Custom>
> > > <Custom Action="validateProductDb" Before="validateTpdb">NOT
> > >Installed</Custom>
> > > <Custom Action="validateTpdb" Before="tryUpdateTpdb">NOT
> > >Installed</Custom>
> > > <Custom Action="tryUpdateTpdb" Before="InstallFinalize">NOT
> > >Installed</Custom>
> > > </InstallExecuteSequence>
> > >
> > >
> > >On Mon, Jul 29, 2013 at 1:52 PM, Neil Sleightholm
> > ><n...@x2systems.com>wrote:
> > >
> > >> You seem to be missing an upgrade table. The simplest way to add
> > >> this is to use MajorUpgrade element and set the attribute appropriately.
> > >>
> > >> Neil
> > >>
> > >>
> > >> >Hi everyone,
> > >> >
> > >> >I've got a long-running application we just upgraded to .NET 4.5
> > >> >and
> > >>WiX.
> > >> >It's had the same UpgradeCode for ages, so I included it in my
> > >> >Product-file for WiX. It installed side-by-side with the existing
> > >> >application. Reading up some, it seemed like I had to add a
> > >> >directive
> > >>to
> > >> >remove existing products. Good, I'd like to do that before the
> > >>installer
> > >> >does anything else. Just remove everything that was and put in
> > >> >this new installer. That's how we do it everytime. Adding the
> > >> >directive, I
> > >>thought
> > >> >along with the UpgradeCode, I'm good to go ... but, it does not
> > >> >remove, and I still get two items for this application in Add/Remove
> > >> >Programs.
> > >> >This is my XML, and what I'm trying to do is simply remove all
> > >> >previous versions (that have the UpgradeCode) and then put on this
> > >> >version 4.3.0 (previous version was 4.2.0 and a Visual Studio Installer
> > >> >Project):
> > >> >
> > >> ><?xml version="1.0" encoding="UTF-8"?> <Wix
> > >> >xmlns="http://schemas.microsoft.com/wix/2006/wi"
> > >> >xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
> > >> > <Product Id="*" Name="Program Name Removed" Language="1033"
> > >> >Version="4.3.0" Manufacturer="Company Name Removed"
> > >> >UpgradeCode="17652B67-2C4F-4752-88CE-0E300DEA4C2F">
> > >> > <Package
> > >> > InstallerVersion="200"
> > >> > Compressed="yes"
> > >> > InstallScope="perMachine"
> > >> > InstallPrivileges="elevated"
> > >> > Manufacturer="Company Name Removed"
> > >> > Platform="x86"
> > >> > />
> > >> >
> > >> > <!-- BEGIN: License Agreement -->
> > >> > <WixVariable Id="WixUILicenseRtf"
> > >> >Value="SetupResources/LicenseAgreement.rtf" />
> > >> >
> > >> > <!-- BEGIN: UI Bitmaps -->
> > >> > <WixVariable Id="WixUIBannerBmp"
> > >> >Value="SetupResources/WiXDefBannerBitmap.bmp" />
> > >> > <WixVariable Id="WixUIDialogBmp"
> > >> >Value="SetupResources/WiXDefDialogBitmap.bmp" />
> > >> > <!-- BEGIN: Custom Actions -->
> > >> > <CustomAction Id='validateSqlServer' BinaryKey='customPaActions'
> > >> >DllEntry='ValidateSqlServer' />
> > >> > <CustomAction Id='validateTpdb' BinaryKey='customPaActions'
> > >> >DllEntry='ValidateTpdb' />
> > >> > <CustomAction Id='validateProductDb' BinaryKey='customPaActions'
> > >> >DllEntry='ValidateProductDb' />
> > >> > <CustomAction Id='tryUpdateTpdb' BinaryKey='customPaActions'
> > >> >DllEntry='TryUpdateTpdb' />
> > >> >
> > >> > <Binary Id='customPaActions' SourceFile='D:\TFS\Program Name
> > >> >Removed\Main\Src\Program Name
> > >> >Removed\WiX.PA.CustomActions\obj\x86\WiX
> > >> >Project Output Configuration\WiX.PA.CustomActions.CA.dll' />
> > >> >
> > >> > <!-- BEGIN: Single MSI -->
> > >> > <MediaTemplate EmbedCab="yes" />
> > >> > <!-- BEGIN: Application Icon -->
> > >> > <Icon Id="appicon.ico" SourceFile="SetupResources/appicon.ico"/>
> > >> > <!-- BEGIN: .NET Version Launch Condition -->
> > >> > <PropertyRef Id="NETFRAMEWORK45" />
> > >> > <Condition Message="You must install Microsoft .NET 4.5">
> > >> > <![CDATA[Installed OR NETFRAMEWORK45]]>
> > >> > </Condition>
> > >> > <InstallExecuteSequence>
> > >> > <RemoveExistingProducts After="InstallInitialize" />
> > >> > <InstallExecute After="RemoveExistingProducts" />
> > >> > <Custom Action="validateSqlServer"
> > >> >Before="validateProductDb">NOT Installed</Custom>
> > >> > <Custom Action="validateProductDb" Before="validateTpdb">NOT
> > >> >Installed</Custom>
> > >> > <Custom Action="validateTpdb" Before="tryUpdateTpdb">NOT
> > >> >Installed</Custom>
> > >> > <Custom Action="tryUpdateTpdb" Before="InstallFinalize">NOT
> > >> >Installed</Custom>
> > >> > </InstallExecuteSequence>
> > >> >
> > >> > <!-- BEGIN: File System -->
> > >> > <Directory Id="TARGETDIR" Name="SourceDir">
> > >> > <Directory Id="ProgramFilesFolder">
> > >> > <Directory Id="CompanyFolder" Name="Company Name Removed">
> > >> > <Directory Id="INSTALLDIRECTORY" Name="Program Name Removed">
> > >> > <Directory Id="Cache" Name="Cache">
> > >> > <Directory Id="Images" Name="Images">
> > >> > </Directory>
> > >> > </Directory>
> > >> > <Directory Id="Help" Name="Help"/>
> > >> > </Directory>
> > >> > </Directory>
> > >> > </Directory>
> > >> > <Directory Id="DesktopFolder" Name="Desktop"></Directory>
> > >> > <Directory Id="StartMenuFolder" Name="StartMenu"></Directory>
> > >> > <Directory Id="StartupFolder" Name="StartUp"></Directory>
> > >> > <Directory Id='AppDataFolder' Name='Roaming'>
> > >> > <Directory Id="Company Name RemovedFolder" Name="Company
> > >> >Name Removed">
> > >> > <Directory Id='ProgramNameRemovedFolder' Name='Program
> > >> >Name Removed'>
> > >> > <Directory Id='SettingsFolder' Name='Settings'/>
> > >> > <Directory Id='ErrorFolder' Name='Error'/>
> > >> > <Directory Id='CacheFolder' Name='Cache'/>
> > >> > <Directory Id='LogFolder' Name='Log'/>
> > >> > </Directory>
> > >> > </Directory>
> > >> > </Directory>
> > >> > <Directory Id="ProgramMenuFolder">
> > >> > <Directory Id="ApplicationProgramsFolder" Name="Program
> > >> >Name Removed"/>
> > >> > </Directory>
> > >> > </Directory>
> > >> > <!-- BEGIN: Features -->
> > >> > <Feature Id="ProductFeature" ConfigurableDirectory="TARGETDIR"
> > >> >Level="1">
> > >> > <ComponentGroupRef Id="Shortcuts"/>
> > >> > <ComponentGroupRef Id="ProductComponents.Help" />
> > >> > <ComponentGroupRef Id="ProductComponents.Images" />
> > >> > <ComponentGroupRef Id="ProductComponents.RoamingFolders" />
> > >> > <ComponentGroupRef Id="HeatBinaryFiles" />
> > >> > </Feature>
> > >> >
> > >> > <!-- BEGIN: Add/Remove Programs Icon -->
> > >> > <Property Id="ARPPRODUCTICON" Value="appicon.ico" />
> > >> >
> > >> > <!-- BEGIN: User Interface -->
> > >> > <UIRef Id="WixUI_APPNAME" />
> > >> >
> > >> > </Product>
> > >> ></Wix>
> > >> >
> > >> >Any sharp eyes seeing what I'm doing wrong? Relating back to
> > >> >Visual Studio Installers, I just checked "remove existing
> > >> >versions" (and
> > >>detect
> > >> >newer versions) or what it was called again, and it's the same
> > >> >behavior I'm looking for here.
> > >> >
> > >> >Best Regards,
> > >> >
> > >> >Tom
> > >> >
> > >>
> > >>>-------------------------------------------------------------------
> > >>>-----
> > >>>--
> > >> >----
> > >> >See everything from the browser to the database with AppDynamics
> > >> >Get end-to-end visibility with application monitoring from
> > >> >AppDynamics Isolate bottlenecks and diagnose root cause in seconds.
> > >> >Start your free trial of AppDynamics Pro today!
> > >> >
> > >>
> > >>http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg
> > >>.clkt
> > >>r
> > >> >k
> > >> >_______________________________________________
> > >> >WiX-users mailing list
> > >> >WiX-users@lists.sourceforge.net
> > >> >https://lists.sourceforge.net/lists/listinfo/wix-users
> > >>
> > >>
> > >>
> > >>
> > >>--------------------------------------------------------------------
> > >>-----
> > >>-----
> > >> See everything from the browser to the database with AppDynamics
> > >>Get end-to-end visibility with application monitoring from
> > >>AppDynamics Isolate bottlenecks and diagnose root cause in seconds.
> > >> Start your free trial of AppDynamics Pro today!
> > >>
> > >>http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg
> > >>.clkt
> > >>rk
> > >> _______________________________________________
> > >> WiX-users mailing list
> > >> WiX-users@lists.sourceforge.net
> > >> https://lists.sourceforge.net/lists/listinfo/wix-users
> > >>
> > >---------------------------------------------------------------------
> > >-----
> > >----
> > >See everything from the browser to the database with AppDynamics Get
> > >end-to-end visibility with application monitoring from AppDynamics
> > >Isolate bottlenecks and diagnose root cause in seconds.
> > >Start your free trial of AppDynamics Pro today!
> > >http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.
> > >clktr
> > >k
> > >_______________________________________________
> > >WiX-users mailing list
> > >WiX-users@lists.sourceforge.net
> > >https://lists.sourceforge.net/lists/listinfo/wix-users
> >
> >
> > ----------------------------------------------------------------------
> > -------- See everything from the browser to the database with
> > AppDynamics Get end-to-end visibility with application monitoring from
> > AppDynamics Isolate bottlenecks and diagnose root cause in seconds.
> > Start your free trial of AppDynamics Pro today!
> > http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.c
> > lktrk _______________________________________________
> > WiX-users mailing list
> > WiX-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wix-users
>
> ------------------------------------------------------------------------------
> See everything from the browser to the database with AppDynamics Get
> end-to-end visibility with application monitoring from AppDynamics Isolate
> bottlenecks and diagnose root cause in seconds.
> Start your free trial of AppDynamics Pro today!
> http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
> ------------------------------------------------------------------------------
> See everything from the browser to the database with AppDynamics
> Get end-to-end visibility with application monitoring from AppDynamics
> Isolate bottlenecks and diagnose root cause in seconds.
> Start your free trial of AppDynamics Pro today!
> http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent
caught up. So what steps can you take to put your SQL databases under
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users