Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Another version of this product is already install


1 reply to this topic

integer

integer
  • Full Members
  • 9 posts

Posted 06 March 2013 - 18:42

I want my installer to detect whether it has already been previously installed and if so display my own custom msg instead of showing the default Windows Installer error:

QUOTE
    Another version of this product is already installed. Installation of this version cannot continue. To configure or remove the existing version of this product, use Add/Remove Programs on the Control Panel.


I have 32-bit and 64-bit versions of my installer for the same product which have (nearly) the exact same code & custom action sequence (there are only minor differences which are not relevant to this issue)

My 32-bit installer works perfectly fine (it shows my custom msg if I run the installer when the product is already installed), but my 64-bit installer does NOT work correctly and always shows the unwanted Windows error msg.

CheckPreviousVersion is the first function called as a Custom Action during the UI sequence, I've tried putting it in different spots (after InstallValidate) but nothing works. I've generated a verbose log file but I can't tell if there's anything useful in it that might explain this behavior:

QUOTE


=== Verbose logging started: 05/03/2013  16:27:20  Build type: SHIP UNICODE 5.00.7601.00  Calling process: C:\Windows\system32\msiexec.exe ===
MSI © (0C:70) [16:27:20:258]: Font created.  Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg

MSI © (0C:70) [16:27:20:258]: Font created.  Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg

MSI © (0C:94) [16:27:20:331]: Resetting cached policy values
MSI © (0C:94) [16:27:20:331]: Machine policy value 'Debug' is 0
MSI © (0C:94) [16:27:20:331]: ******* RunEngine:
          ******* Product: Hello World (64-bit).msi
          ******* Action:
          ******* CommandLine: **********
MSI © (0C:94) [16:27:21:546]: Machine policy value 'DisableUserInstalls' is 0
MSI © (0C:94) [16:27:21:557]: SOFTWARE RESTRICTION POLICY: Verifying package --> 'C:\single-exec\Hello World (64-bit).msi' against software restriction policy
MSI © (0C:94) [16:27:21:557]: Note: 1: 2262 2: DigitalSignature 3: -2147287038
MSI © (0C:94) [16:27:21:557]: SOFTWARE RESTRICTION POLICY: C:\single-exec\Hello World (64-bit).msi is not digitally signed
MSI © (0C:94) [16:27:21:558]: SOFTWARE RESTRICTION POLICY: C:\single-exec\Hello World (64-bit).msi is permitted to run at the 'unrestricted' authorization level.
MSI © (0C:94) [16:27:21:584]: Cloaking enabled.
MSI © (0C:94) [16:27:21:584]: Attempting to enable all disabled privileges before calling Install on Server
MSI © (0C:94) [16:27:21:586]: End dialog not enabled
MSI © (0C:94) [16:27:21:586]: Original package ==> C:\single-exec\Hello World (64-bit).msi
MSI © (0C:94) [16:27:21:586]: Package we're running from ==> C:\single-exec\Hello World (64-bit).msi
MSI © (0C:94) [16:27:21:589]: APPCOMPAT: Uninstall Flags override found.
MSI © (0C:94) [16:27:21:589]: APPCOMPAT: Uninstall VersionNT override found.
MSI © (0C:94) [16:27:21:589]: APPCOMPAT: Uninstall ServicePackLevel override found.
MSI © (0C:94) [16:27:21:589]: APPCOMPAT: looking for appcompat database entry with ProductCode '{B8CBA92E-2140-48AB-B4EA-A4C3FF10295B}'.
MSI © (0C:94) [16:27:21:589]: APPCOMPAT: no matching ProductCode found in database.
MSI © (0C:94) [16:27:21:599]: MSCOREE not loaded loading copy from system32
MSI © (0C:94) [16:27:21:608]: Machine policy value 'DisablePatch' is 0
MSI © (0C:94) [16:27:21:608]: Machine policy value 'AllowLockdownPatch' is 0
MSI © (0C:94) [16:27:21:608]: Machine policy value 'DisableLUAPatching' is 0
MSI © (0C:94) [16:27:21:608]: Machine policy value 'DisableFlyWeightPatching' is 0
MSI © (0C:94) [16:27:21:609]: APPCOMPAT: looking for appcompat database entry with ProductCode '{B8CBA92E-2140-48AB-B4EA-A4C3FF10295B}'.
MSI © (0C:94) [16:27:21:609]: APPCOMPAT: no matching ProductCode found in database.
MSI © (0C:94) [16:27:21:609]: Transforms are not secure.
MSI © (0C:94) [16:27:21:609]: PROPERTY CHANGE: Adding MsiLogFileLocation property. Its value is 'C:\single-exec\INSTALL64.LOG'.
MSI © (0C:94) [16:27:21:609]: Command Line: CURRENTDIRECTORY=C:\single-exec CLIENTUILEVEL=0 CLIENTPROCESSID=7948
MSI © (0C:94) [16:27:21:609]: PROPERTY CHANGE: Adding PackageCode property. Its value is '{47A766F9-85F8-4166-80D4-BA91B7415A3F}'.
MSI © (0C:94) [16:27:21:609]: Product Code passed to Engine.Initialize:          ''
MSI © (0C:94) [16:27:21:609]: Product Code from property table before transforms: '{B8CBA92E-2140-48AB-B4EA-A4C3FF10295B}'
MSI © (0C:94) [16:27:21:609]: Product Code from property table after transforms:  '{B8CBA92E-2140-48AB-B4EA-A4C3FF10295B}'
MSI © (0C:94) [16:27:21:609]: Product registered: entering maintenance mode
MSI © (0C:94) [16:27:21:609]: Determined that existing product (either this product or the product being upgraded with a patch) is installed per-machine.
MSI © (0C:94) [16:27:21:609]: PROPERTY CHANGE: Adding ProductState property. Its value is '5'.
MSI © (0C:94) [16:27:21:609]: PROPERTY CHANGE: Adding ProductToBeRegistered property. Its value is '1'.
MSI © (0C:94) [16:27:21:609]: Entering CMsiConfigurationManager::SetLastUsedSource.
MSI © (0C:94) [16:27:21:609]: Specifed source is already in a list.
MSI © (0C:94) [16:27:21:609]: User policy value 'SearchOrder' is 'nmu'
MSI © (0C:94) [16:27:21:609]: Machine policy value 'DisableBrowse' is 0
MSI © (0C:94) [16:27:21:609]: Machine policy value 'AllowLockdownBrowse' is 0
MSI © (0C:94) [16:27:21:609]: Adding new sources is allowed.
MSI © (0C:94) [16:27:21:609]: PROPERTY CHANGE: Adding PackagecodeChanging property. Its value is '1'.
Another version of this product is already installed. Installation of this version cannot continue. To configure or remove the existing version of this product, use Add/Remove Programs on the Control Panel.
{B8CBA92E-2140-48AB-B4EA-A4C3FF10295B}
MSI © (0C:94) [16:27:21:610]: Note: 1: 1729
MSI © (0C:94) [16:27:21:610]: Product: Hello World (64-bit) -- Configuration failed.

MSI © (0C:94) [16:27:21:611]: Windows Installer reconfigured the product. Product Name: Hello World (64-bit). Product Version: 8.7. Product Language: 1033. Manufacturer: Hello World. Reconfiguration success or error status: 1638.

MSI © (0C:94) [16:27:21:613]: MainEngineThread is returning 1638
=== Verbose logging stopped: 05/03/2013  16:27:21 ===




nirbar

nirbar
  • Full Members
  • 3 posts

Posted 07 March 2013 - 11:18

Windows Installer checks if a product is installed before running any of the sequences. If a product is installed then the command line should state an uninstall or update or repair.
Otherwise the installation is terminated with the message you saw.

In this case it detected that the product is installed for the current user (in the log file - ProductState=5)
and the installation was terminated

Usually a wrapper setup.exe checks if the product is installed before starting Windows Installer. It then runs in installation mode if the product isn't already installed, or in maintenance mode if the product is installed.

The behavior you describe for x64 is normal for the situation
The behavior for x32 isn't what I'd expect for the situation. Are you using a wrapper there?
Nir Bar - Application packaging expert
nir.bar@panel-sw.co.il