PDA

View Full Version : Error 1721 for EXE custom-action on Vista



JLStanley
07-18-2008, 06:21 PM
My ISX-based install seems to run fine on everything except Vista. To facilitate our users downloading the install from a website, it is a "Single-executable" .exe install, not a .msi install.

The problem I'm seeing is that, when installing on Vista (even when logged in as Administrator), I get a pop-up showing the error message "Error 1721. There is a problem with this Windows Installer package. A program required for this install to complete could not be run." But, if I launch the .exe install file by right clicking on it an clicking the "run as administrator" option, it runs fine.

Checking the install-logfile, I see the problem occurs when the install tries to run an EXE custom action in the "After Register Product" phase. This is a VC++ 6.0 .exe action so there's no manifest I can modify to get elevated privileges. Since this is an ISX install, the common recomendation from other forums to set it to run as "deferred execution in system context" doesn't appear to be an option.

So, it seems like this should be a basic ISX question with some similarly basic answer... How do I run a VC++ 6.0 custom-action on Vista without getting a 1721 error? :confused:

hidenori
07-21-2008, 05:42 PM
One thing you can do is to open your .ise project file in Orca and tweak the Custom Action table. You need to add 2048 to the value in the Type field of your custom action that you want to run in system context. Note that the change will be discarded if you modify the custom action in the Custom Action view. If you do not prefer this workaround, you may want to consider upgrading to the Professional or Premier edition.

JLStanley
07-21-2008, 07:28 PM
One thing you can do is to open your .ise project file in Orca and tweak the Custom Action table. You need to add 2048 to the value in the Type field of your custom action that you want to run in system context. Thank you very much for the response.

Three questions:
1) What exactly does adding 2048 tell the installer?
2) It would seem (IMHO) that running custom actions in a system context is a VERY essential function for installing in Vista. (Many apps simply CAN NOT be installed without it.) If ISX is going to claim Vista compatibility, why is this option not directly available in ISX?
3) Can we get this flagged as a high-priority ISX update-request for a future release?

Regards,
... JLStanley

PS: I'll test the 2048 work-around tomorrow and let everyone know if it works.

hidenori
07-21-2008, 09:54 PM
2048 (0x00000800) is the option flag that specifies to run in system context. Please see the Custom Action In-Script Execution Options (http://msdn.microsoft.com/en-us/library/aa368069(VS.85).aspx) Windows Installer help topic for more information. I also filed the feature enhancement work order #IOC-000073792 so that we will take into consideration for a future release.

Thank you for your feedback.

Yan Zhang
07-22-2008, 03:46 AM
I met the same issue in my package. Please check if your exe file (which will be launched by the customer action) has a UAC icon in vista. If it has, rebuild the exe file and modify its output name without "install", "patch", "update", "setup" strings.

hidenori
07-22-2008, 11:20 AM
Another workaround is to select the Administrator for the Required Execution Level in the Releases view. Note that with this option, the Setup.exe bootstrapper that InstallShield creates will run the whole process with administrative privileges.