Hi Rob,
Thank you very much for your response.
Actually, I did read the Wix.chm and found a topic "How To: Run the Installed
Application After Setup". Do you mean this topic? If it's not, then could you
please tell me a few key words that I can use to search the topic?
For the topic "How To: Run the Installed Application After Setup", I did copy
the code and actually using it for our "luanching application when exit" case.
But in our special case, besides the final "launching application when exit",
we also need to run another program right after installation but
before "launching the main application". Namely, we will need to run 2 program
after installation: one is a small program which needs to be run before the
main application startup(and it needs to run until finished); another one is
the main application which is already implemented by using the code from
Wix.chm. How can I do this?
For "launching application when exit" case, I followed the document and got it
work already. But I can't get the "run another small program" working. Also,
even though the "launching application when exit" works, I'm not quite sure the
meaning of the code. For example, this part(I just copy the text from Wix.chm):
...............................
Step 3: Include the custom action
Custom actions are included in a WiX project using the <CustomAction> element.
Running an application is accomplished with the WixShellExecTarget custom
action. To tell Windows Installer about the custom action, and to set its
properties, include the following in your project anywhere inside the <Product>
element:<PropertyId="WixShellExecTarget"Value="[#myapplication.exe]"/>
<CustomActionId="LaunchApplication"BinaryKey="WixCA"DllEntry="WixShellExec"Impersonate="yes"/>
The Property element sets the WixShellExecTarget to the location of the
installed application. WixShellExecTarget is the property Id the WixShellExec
custom action expects will be set to the location of the file to run. The Value
property uses the special # character to tell WiX to look up the full installed
path of the file with the id myapplication.exe.
The CustomAction element includes the action in the installer. It is given a
unique Id, and the BinaryKey and DllEntry properties indicate the assembly and
entry point for the custom action. The Impersonate property tells Windows
Installer to run the custom action as the installing user.
...............................
=============================
Here are a few questions:
=============================
1. The property "WixShellExecTarget": I understand this property maybe a
pre-defined property. I'll just need to define it to provide the value which is
the application executable file. Does it mean I must use this property name if
I need to run another program? I think the answer is NO. But then what kind of
property name I should use if it's not the "launch application" case? Or it
doesn't matter? Can I use some like "MyExec2", for instance?
2. For CustomAction "BinaryKey", it's "WixCA". I found the definition for
"BinaryKey" from Wix.chm:
...............................
This attribute is a reference to a Binary element with matching Id attribute.
That binary stream contains the custom action for use during install. The
custom action will not be installed into a target directory. This attribute is
typically used with the DllEntry attribute to specify the custom action DLL to
use for a type 1 custom action, with the ExeCommand attribute to specify a type
17 custom action that runs an embedded executable, or with the VBScriptCall or
JScriptCall attributes to specify a type 5 or 6 custom action.
...............................
I guess it's a key used when launching application? Can I use it in our "run
another program" case?
3. For DllEntry, it's "WixShellExec". I found the info about it:
...............................
The WixShellExec custom action in wixca (part of WixUtilExtension) lets you
open document or URL targets via the Windows shell. A common use is to launch
readme files or URLs using their registered default applications based on their
extension. Note that WixShellExecute can only be used as an immediate custom
action as it launches an application without waiting for it to close.
WixShellExec reads its target from the WixShellExecTarget property, formats it,
and then calls ShellExecute with the formatted value. It uses the default verb,
which is usually "open." For more information, see ShellExecute Function.
...............................
But in our case, we need to "run that small program and wait until it finished
before launching the main application" instead of "as it launches an
application without waiting for it to close". Can I use this "launch
application" example in our case?
4. Anyways, I thought maybe it'll work if I use the code from this example in
the Wix.chm. So I had this piece of code for our small program:
<Property Id="WixShellExecTarget2" Value="[#TestExe]" />
<CustomAction Id="RunMyExe" BinaryKey="WixCA" DllEntry="WixShellExec"
Impersonate="yes" />
<InstallExecuteSequence>
<Custom Action="RunTestExe" After="InstallFiles">NOT Installed</Custom>
</InstallExecuteSequence>
But when I run it, I got "Setup Wizard ended prematurely" error.
5. As it doesn't work, I searched the forum for answers. Then got these code
which doesn't work either:
<CustomAction Id="RunTestExe" FileKey="TestExe" ExeCommand=''
Return="asyncWait" />
<InstallExecuteSequence>
<Custom Action="RunTestExe" After="InstallFiles">NOT Installed</Custom>
</InstallExecuteSequence>
I really appreciate if you or anyone else can give me some clue. We're
currectly stuck on it.
Many many thanks.
/Brian
__________________________________________________________________
Get a sneak peak at messages with a handy reading pane with All new Yahoo!
Mail: http://ca.promos.yahoo.com/newmail/overview2/
------------------------------------------------------------------------------
OpenSolaris 2009.06 is a cutting edge operating system for enterprises
looking to deploy the next generation of Solaris that includes the latest
innovations from Sun and the OpenSource community. Download a copy and
enjoy capabilities such as Networking, Storage and Virtualization.
Go to: http://p.sf.net/sfu/opensolaris-get
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users