PDA

View Full Version : CustomerInfo dialog does not set ALLUSERS



Peter Kosenko
03-17-2008, 09:47 PM
Has anyone else come across this?

************

Basic MSI CustomerInfo dialog does not seem to be setting the ALLUSERS property.

We have an InstallSchield upconversion of a Basic MSI installer to InstallShield 2008.

The CustomerInfo dialog does not seem to work to set ALLUSERS.

These two Set Property custom actions occur in the NEXT button events.

Event Argument Condition
[ALLUSERS] 1 ApplicationUsers="AllUsers" And Privileged
[ALLUSERS] {} ApplicationUsers = "OnlyCurrentUser" and Privileged

The radio buttons are configured to return the quoted values above (double checked). I am logged on as an AdminUser (= Privileged). I tried this without the Privileged condition also, and it still didn't work.

But the ALLUSERS property still does not reset from the default ALLUSERS=1 when "Only for Me (<username>)" is selected.

Peter Kosenko
03-17-2008, 11:21 PM
In fact, I am beginning to suspect that InstallShield 2008 is INCAPABLE of setting ALLUSERS="" (me only). I created a custom action to substitute for what should be the Dialog's behavior. Neither of the following worked.

MsiSetProperty(ISMSI_HANDLE, "ALLUSERS", "");

ALLUSERS = 0

In other words, we are stuck with an installer that installs ONLY for ALL USERS???

*************************


Has anyone else come across this?

************

Basic MSI CustomerInfo dialog does not seem to be setting the ALLUSERS property.

We have an InstallSchield upconversion of a Basic MSI installer to InstallShield 2008.

The CustomerInfo dialog does not seem to work to set ALLUSERS.

These two Set Property custom actions occur in the NEXT button events.

Event Argument Condition
[ALLUSERS] 1 ApplicationUsers="AllUsers" And Privileged
[ALLUSERS] {} ApplicationUsers = "OnlyCurrentUser" and Privileged

The radio buttons are configured to return the quoted values above (double checked). I am logged on as an AdminUser (= Privileged). I tried this without the Privileged condition also, and it still didn't work.

But the ALLUSERS property still does not reset from the default ALLUSERS=1 when "Only for Me (<username>)" is selected.

bryanwolf
03-18-2008, 09:14 AM
Honestly, you probably want to only install for All Users. Per-user installations are typically fraught with error and prone to maintenance nightmares. This is my opinion only, obviously :)

At any rate, can you see the radio selections on the dialog? Have you logged the installation to determine the behavior ALLUSERS is following?

joshstechnij
03-18-2008, 10:16 AM
As a sanity check, since you appear to be using InstallScript custom actions, can you confirm that the hotfix from Q113652: HOTFIX: InstallScript Initialization Code Modifying ALLUSERS Property (http://knowledge.macrovision.com/selfservice/microsites/search.do?cmd=displayKC&docType=kc&externalId=Q113652&sliceId=1&docTypeID=DT_HOTFIX_1_1&dialogID=6272919&stateId=0%200%206274186) has been applied?

Peter Kosenko
03-18-2008, 04:07 PM
Actually, NO, I didn't have that hotfix installed.

When I updated the ISSetup.dll as specified in the hotfix , I get another error related to custom actions:

Error 1723 There is a problem with this Windows Installer package. A DLL required for this install to work could not be run. Contact your support personnel or package vendor. Action SetCompressedProductGUID, etnry: f21, library: . . .\. . .

That is the FIRST custom action in the installer. Presumably in IScriptBridge.DLL.

So there is some incompatibility between the hotfix DLL and my existing IS2008?

Of course, I backed up the old ISSetup.DLL 14.0.0.162 and can restore it, but the hotfix isn't helping.

I restarted IS2008. Same problem.

I'm now going to reboot the computer and see if that (perhaps) solves the problem.

-- Peter


As a sanity check, since you appear to be using InstallScript custom actions, can you confirm that the hotfix from Q113652: HOTFIX: InstallScript Initialization Code Modifying ALLUSERS Property (http://knowledge.macrovision.com/selfservice/microsites/search.do?cmd=displayKC&docType=kc&externalId=Q113652&sliceId=1&docTypeID=DT_HOTFIX_1_1&dialogID=6272919&stateId=0%200%206274186) has been applied?

joshstechnij
03-18-2008, 04:34 PM
ISScriptBridge.dll is no longer used for InstallScript custom actions (as of IS 12); ISSetup.dll is essentially its replacement.

I'm not certain what the cause of the error would be based on the log line. Can you double-check the ISSetup.dll that is present in C:\Program Files\Macrovision\IS2008\Redist\Language Independent\i386 with Dependency Walker and make sure that it is exporting function names in the form f<x> (where x is 1 through 1000)? If those aren't present, the InstallScript version of ISSetup.dll could have been mixed up with the MSI version (I checked the zip file in the KB and it is correct if you extract the zip file to the IS2008 folder).

Peter Kosenko
03-18-2008, 04:51 PM
The hotfix is working after I rebooted my machine.

The "OnlyCurrentUser" selection in the CustomerInfo dialog is now setting ALLUSERS to "" where it was left as default "1" before.

Thank you VERY MUCH for the help.

-- Peter


ISScriptBridge.dll is no longer used for InstallScript custom actions (as of IS 12); ISSetup.dll is essentially its replacement.

I'm not certain what the cause of the error would be based on the log line. Can you double-check the ISSetup.dll that is present in C:\Program Files\Macrovision\IS2008\Redist\Language Independent\i386 with Dependency Walker and make sure that it is exporting function names in the form f<x> (where x is 1 through 1000)? If those aren't present, the InstallScript version of ISSetup.dll could have been mixed up with the MSI version (I checked the zip file in the KB and it is correct if you extract the zip file to the IS2008 folder).

Peter Kosenko
03-18-2008, 05:18 PM
Also, thank you for the clarification about ISScriptBridge.dll.

We missed InstallShield 12 and went from 9.0 to 11.5 to 2008.

So my understanding was apparently a bit dated.

Thanks again.


The hotfix is working after I rebooted my machine.

The "OnlyCurrentUser" selection in the CustomerInfo dialog is now setting ALLUSERS to "" where it was left as default "1" before.

Thank you VERY MUCH for the help.

-- Peter