Windows Installer "This action only applies to products that are currently installed" - "MSI_DBG: Descriptor provided smaller than minimum size"

I had a strange problem with the WiX installer on a Windows 8 machine. When I click on msi, I get the message "This action only applies to products that are currently installed." Running msi with logging shows the following:

=== Verbose logging started: 3/11/2014 9:46:49 Build type: SHIP UNICODE 5.00.9600.00 Calling process: C:\WINDOWS\system32\msiexec.exe === MSI (c) (20:C4) [09:46:49:933]: Font created. Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg MSI (c) (20:C4) [09:46:49:934]: Font created. Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg MSI (c) (20:40) [09:46:49:956]: Resetting cached policy values MSI (c) (20:40) [09:46:49:956]: Machine policy value 'Debug' is 0 MSI (c) (20:40) [09:46:49:956]: ******* RunEngine: ******* Product: myinstaller.msi ******* Action: ******* CommandLine: ********** MSI (c) (20:40) [09:46:49:976]: Machine policy value 'DisableUserInstalls' is 0 MSI (c) (20:40) [09:46:50:014]: Note: 1: 1402 2: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer 3: 2 MSI (c) (20:40) [09:46:50:766]: SOFTWARE RESTRICTION POLICY: Verifying package --> 'E:\myinstaller.msi' against software restriction policy MSI (c) (20:40) [09:46:50:766]: Note: 1: 2262 2: DigitalSignature 3: -2147287038 MSI (c) (20:40) [09:46:50:766]: SOFTWARE RESTRICTION POLICY: E:\myinstaller.msi is not digitally signed MSI (c) (20:40) [09:46:50:778]: SOFTWARE RESTRICTION POLICY: E:\myinstaller.msi is permitted to run at the 'unrestricted' authorization level. MSI (c) (20:40) [09:46:50:793]: Cloaking enabled. MSI (c) (20:40) [09:46:50:793]: Attempting to enable all disabled privileges before calling Install on Server MSI (c) (20:40) [09:46:50:799]: End dialog not enabled MSI (c) (20:40) [09:46:50:799]: Original package ==> E:\myinstaller.msi MSI (c) (20:40) [09:46:50:799]: Package we're running from ==> C:\Users\PATRI_~1\AppData\Local\Temp\50d229a.msi MSI (c) (20:40) [09:46:50:804]: MSI_DBG: Provided descriptor less than minimum size MSI (c) (20:40) [09:46:50:807]: APPCOMPAT: Compatibility mode property overrides found. MSI (c) (20:40) [09:46:50:808]: APPCOMPAT: looking for appcompat database entry with ProductCode ''. MSI (c) (20:40) [09:46:50:808]: APPCOMPAT: no matching ProductCode found in database. MSI (c) (20:40) [09:46:50:849]: MSCOREE not loaded loading copy from system32 MSI (c) (20:40) [09:46:50:859]: Machine policy value 'TransformsSecure' is 0 MSI (c) (20:40) [09:46:50:859]: User policy value 'TransformsAtSource' is 0 MSI (c) (20:40) [09:46:50:860]: APPCOMPAT: looking for appcompat database entry with ProductCode ''. MSI (c) (20:40) [09:46:50:860]: APPCOMPAT: no matching ProductCode found in database. MSI (c) (20:40) [09:46:50:860]: Transforms are not secure. MSI (c) (20:40) [09:46:50:860]: PROPERTY CHANGE: Adding MsiLogFileLocation property. Its value is 'E:\installlog.txt'. MSI (c) (20:40) [09:46:50:860]: Command Line: CURRENTDIRECTORY=E:\ CLIENTUILEVEL=0 CLIENTPROCESSID=800 CURRENTMEDIAVOLUMELABEL=? MSI (c) (20:40) [09:46:50:860]: PROPERTY CHANGE: Adding PackageCode property. Its value is '{9C098FBE-3C8F-452D-A0C4-B543717B6E3D}'. MSI (c) (20:40) [09:46:50:861]: Product Code passed to Engine.Initialize: '' MSI (c) (20:40) [09:46:50:861]: Product Code from property table before transforms: '' MSI (c) (20:40) [09:46:50:861]: Product Code from property table after transforms: '' MSI (c) (20:40) [09:46:50:861]: Failing install, missing product code This action is only valid for products that are currently installed. E:\myinstaller.msi MSI (c) (20:40) [09:46:50:862]: Note: 1: 1708 MSI (c) (20:40) [09:46:50:863]: Product: -- Installation failed. MSI (c) (20:40) [09:46:50:865]: Windows Installer installed the product. Product Name: . Product Version: . Product Language: . Manufacturer: . Installation success or error status: 1605. MSI (c) (20:40) [09:46:50:871]: MainEngineThread is returning 1605 === Verbose logging stopped: 3/11/2014 9:46:50 ===` 

The odd thing is that the same installer works fine on a win7 machine, and the slightly older version of the installer works on a win8 machine. I am not sure why the product code is empty, since it has a valid guid on win7.

Does anyone have any idea why I am getting this error?

EDIT: Using Orca, I see that the ProductCode property for MSI is set to a valid GUID

EDIT2: by replacing the GUID in the product code using Orca with Guid from a different version of the installer, I can make it work, but when creating from WiX with ProductCode = '*' it does not work, although the manual that gets into the product code seems to be correct .

+2
source share
7 answers

I finally realized that this was caused during the transfer of the installer from my win7 machine to the win8 machine using a flash drive. I transferred the same file through a network drive, and of course it worked fine. Obviously, the manual in the product code, or possibly the entire installer, is damaged on the flash drive in some way, causing an error.

Thanks to everyone who thought about me, I appreciate your time and apologize for the strange mistake!

+1
source

Just a few suggestions: 1. Valid guid includes all uppercase letters, so if Windows 8 tightens the rules, check this out. 2. Appcompat applications imply that there are some things for application compatibility, for example, pretending that the system (for example) is Windows 7 or XP to install it, otherwise it will not be installed on 8. Or Windows is pretending to be internal. See if there are some compatibility options in the MSI file under Properties → Compatibility. It could happen somewhere.

+2
source

Did you log in using different users and worked or installed the package on a Windows 8 machine? If so, the first thing I would like to do is try installing on a new Windows 8 machine . If it works, immediately remove it and let us know.

You should also check your existing Windows 8 machine and see "Add or Remove Programs" to determine if your package is listed. There may be many copies or nothing at all - your package does not contain ALLUSERS = 1, which means that it can be installed for each user by default. Try deleting any entries there.

See here for each user account in SCCM: http://social.technet.microsoft.com/Forums/en-US/b0ff996e-9235-4682-8b28-71011e84fe7e/uninstall-program-using-msi-error-exit -code-is-1605-the-execution-status-is-failurenonretry? forum = configmgrswdist

+1
source

When searching the Internet for “Failed install, missing code code”, there are several other entries for this, all have a return code of 1605.

Unfortunately, I could not read a specific solution or reason from this. The only thing in common is that everyone is dealing with .msm files. We remember: .msm files (merge modules) do not have their own ProductCode and are not installed separately. Only .msi files can be installed.

My assumption: either in the process something tries to install the merge module directly, or assembly errors occur when merging the merge modules, which leads to their problem.

+1
source

I will try my answer like the opposite:

Firstly, I can give a simple example when you get the first part of the error ("This action is only valid for .."). Try fictitious removal of a non-existing MSI at the command line:

 msiexec /x {12345678-F0B2-36AF-8DF4-1DF6B63FC7B4} 

(Confirm the question with yes and see.)

So:

More information would be needed that (you think :-) your installation does.

An excerpt from the log file is not enough. At least I'm not sure what the installation is doing here: Uninstall, update, repair, fix?

MSI is definitely called with an outdated MSI file or product code in one of these scenarios. With a simple first installation, you will not receive this message.

0
source

Other features, not mutually exclusive:

  • Your MSI is in some strange way not obvious. For example, you get fancy errors if you install an MSI file that does not have a Component table. If there are no files or other components in MSI, this will not work correctly, and the error will be strange. If it runs on W7, this seems unlikely.

  • The system is broken in some way. Product registry entries can be checked. Windows may look for a system for other versions of the package code or product code and detect erroneous data. This is more likely if you already installed the installation with the same code or product code. If this happens, changing its properties and packages to new values ​​can fix it. If you run repeated tests of the same MSI, and this does not work well, this can also cause a problem. Use virtual machines to test MSI to avoid damaging the hardware computer.

0
source

It just happened to me. It turns out that our build script generates a unique UID Product Product for each build (to provide major updates), and a recent change in the build script has caused the UID to be empty.

0
source

Source: https://habr.com/ru/post/957091/


All Articles