cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
wxinlll
Level 4

ALLUSERS property and InstallOption

We attempted to convert the InstallShield 11.5 Basic MSI project to InstallShield 2008. Previously the CustomerInformation dialog was not enabled (shown in the setup sequence) and now we try to enable this dialog, allowing end-users to choose “either install for all” or “only for current users”.

However, even I chose to install only for current users, I found the shortcuts were created for everyone, opposing to what was expected. I checked the behavior of the CustomerInformation dialog, for the “Next” pushbutton the events are as follows:

Event Arguments Conditions
[ALLUSERS] 1 ApplicationUsers = "AllUsers" And Privileged
[ALLUSERS] {} ApplicationUsers = "OnlyCurrentUser" And Privileged

The ALLUSERS value shall be NULL, if I choose Install for Current User only, while be 1 if I choose to install for all. However, when I used the install script to retrieve the ALLUSERS value after the above 2 events, it always gives me a value 1 no matter what choice I made on the CustomerInformation dialog.

Question:
1. As our project is converted from IS 11.5, is there any additional step for me to perform in order to make the CustomerInformation dialog set ALLUSERS value properly? Or any workaround?
2. I used MsiSetProperty() to set the value of ALLUSERS but it seems the installer did not take the value actually. No matter whether I change the choice, or I set the value of ALLUSERS using Custom Action, the installer will install for all eventually. What is the correct procedure to set the value of ALLUSERS using Custom Action?

Thanks a lot for your advice.
Labels (1)
0 Kudos
(1) Reply
wxinlll
Level 4

I tried to retrieve the AllUsers value after the CA and it shows correct as supposed. However, when I enable the full install log, I saw two sets of properties as follows:

Property(S): DiskPrompt = [1]
Property(S): UpgradeCode = {xxx}
Property(S): ProductToBeRegistered = 1
Property(S): OS_NOTSUPPORTED = 0
Property(S): INSTALL_MDAC = 0
Property(S): SourcedirProduct = {xxx}
Property(S): PrimaryVolumeSpaceRemaining = 0
Property(S): PrimaryVolumeSpaceRequired = 0
Property(S): PrimaryVolumeSpaceAvailable = 0
Property(S): ALLUSERS = 1
....

and

Property(C): DiskPrompt = [1]
Property(C): UpgradeCode = {xxxx}
Property(C): ALLUSERS = 1
Property(C): PrimaryVolumeSpaceRemaining = 0
Property(C): PrimaryVolumeSpaceRequired = 0
Property(C): PrimaryVolumeSpaceAvailable = 0
Property(C): OutOfNoRbDiskSpace = 0
Property(C): OutOfDiskSpace = 0
....

I read it somewhere saying that "s" and "c" denote different processes and I am wondering which process will dominate the installation.

Because I tried to create a new project which the "Install for current user only" works properly, and the AllUsers = 1 in set "s" while no AllUsers property is shown in set "c".

Anyone could help to explain this "c" and "s" thing?

most miserably, how come AllUsers appears as Null when I use MsiGetProperty to retrieve but it is "1" in the install log?

Thank you very much and happy new year :-)) (although a bit late)
0 Kudos