cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
rdilipk
Level 5

Problems with launching an executable as a CA

I am trying to set up a custom action sequenced after InstallFinalize exactly as mentioned in this article:
http://support.installshield.com/kb/view.asp?articleid=Q111173

only difference being I use the SETUPEXEDIR property rather than the SOURCEDIR property.

The custom action is repeatedly throwing Error 1721 (a program required to run this installation cannot be run or something similar..).

I created a property under Property Manager and set it to something like:

"[SETUPEXEDIR]\My Dir On Disk1\MyExecutable.exe"

I setup a CA to set this property after the ResolveSource event.

I then set up another custom action where I indicate that I want to run the executable setup by this property with Target as the command line parameters to be passed to MyExecutable.exe and sequence it to run after the InstallFinalize event.

The latter custom action is always throwing up Error 1721.

I know for a fact that setup.exe is in the right folder location and "[SETUPEXEDIR]\My Dir On Disk1\MyExecutable.exe" evaluates to the right location when the installer runs (as is evidenced by the logs).

Why am I repeatedly running into this problem?
Labels (1)
0 Kudos
(4) Replies
rdilipk
Level 5

This is just driving me nuts. Just to make sure it isn't specific to my application, I created a property to launch notepad.

A custom action (Set a property -- lets call this CA_1) is setup with the property value is set to "[SystemFolder]Notepad.exe" and is sequenced after InstallFinalize.

I have another custom action which launches the executable based on "Path in property value". I reference the property created in the above step and sequence it after CA_1 in the installation exec sequence. I set the commandline to some file that is non-existent (I only want to know if Notepad.exe is getting launched in the first place).

and guess what? this throws Error 1721 again.
Its outlandish to suggest it can't find c:\windows\system32\Notepad.exe (which the installer dutifully expanded)...

What is going on? what am I doing wrong?
0 Kudos
rdilipk
Level 5

here is the exact error message from the MSI logs:

MSI (s) (E8:E8) [10:03:41:013]: Doing action: LaunchNotepad
Action ended 10:03:41: SetNotepadLaunchPath. Return value 1.

MSI (s) (E8:E8) [10:03:41:028]: Note: 1: 1721 2: LaunchNotepad 3: "C:\Windows\system32\Notepad.exe" 4: nonexistentfile.txt
Action start 10:03:41: LaunchNotepad.

MSI (s) (E8:E8) [10:04:02:962]: Product: GenericTestInstall -- Error 1721.There is a problem with this Windows Installer package. A program required for this install to complete could not be run. Contact your support personnel or package vendor. Action: LaunchNotepad, location: "C:\Windows\system32\Notepad.exe", command: nonexistentfile.txt

I don't get it... how can such a simple thing create so many problems?
0 Kudos
TheHouz
Level 5

I have the exact same problem. I have many installls that were built and running just fine in InstallShield version 12. All I did was upgrade to 2008, and recompile. Now I get the same errors. All of my custom actions are setup to execute in the [supportdir] and have been working there for a long time.

I need an answer immediately on this, as customers with Vista can not install.
0 Kudos
rdilipk
Level 5

Here is some more research. I guess I will just have to keep pounding away until someone knowledgeable condescends to respond. This is so frustrating without any helpful documentation.. anyway:

From the docs:

"The Windows Installer Help Library refers to custom actions by a numeric type. When you add a custom action to your project in the Custom Actions view, the custom action type number is calculated automatically, and the MSI Type Number property is set to this number. For example, launching an executable whose fully qualified path is stored in the Property table is calculated as custom action type 50."

The last statement isnt' holding true for me. The MSI type number I see on my custom action that is setup to launch an EXE using a path in the property value has a MSI type number of 306!
The actual custom action that sets a property value has a MSI Type Number as 307.

Can this be correct?
0 Kudos