Changing Property During RemoveExistingProducts Action


Tom Kufeldt

General Question:
Is it possible to change the value of a property prior to executing the
RemoveExistingProducts action during a major upgrade without using a custom

I have authored a basic msi package using ORCA and inadvertently made it a
per-user installation by omitting the ALLUSERS property. I have to change
it to per-machine but need to be able to perform upgrades. My upgrade
testing seems to indicate that since ALLUSERS was set to 1 by the new msi
the RemoveExistingProducts is then executed as per-machine based on the
value in ALLUSERS.

At the conclusion of the upgrade the Windows Installers contains references
to a per-user installation and a per-machine installation. Removing the
application from ARP functions correctly but leaves behind an entry in ARP.
This entry no longer functions yielding a popup that states that remove is
only valid for installed products. I can remove the per-user using msiexec
/i [ProductCode].

I would like to change the value of ALLUSERS to null prior to executing the
RemoveExistingProducts action.


Carolyn Napier [MSFT]

Major upgrades can only upgrade of products installed in the same user context.
If the current install is per-user, it can only upgrade over per-user
installations. If the current install is per-machine, it can only upgrade over
per-machine installations. The Installer will log an entry in the case where it
ignores a product to upgrade during the FindRelatedProducts action -- similar to
something like this:

"FindRelatedProducts: current install is per-user. Related install for product
' is per-machine. Skipping..."

The ALLUSERSness of a product cannot be changed once it is installed. The
ALLUSERS property affects where application data is placed (HKCU vs. HKLM,
user's profile vs. all users's profile).

Hope this helps,
- Carolyn Napier
Microsoft Windows Installer Team

This posting is provided "AS IS" with no warranties, and confers no rights.
Please do not send email directly to this alias. This alias is for newsgroup
purposes only.


Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question