I think your execute sequence needs to be something like: <Custom Action="UpgradeStopServices1" After="CostFinalize">PREVIOUSFOUND</Custom> <Custom Action="RunQtExecCommand1" After="UpgradeStopServices1">PREVIOUSFOUND</Custom> <Custom Action="UpgradeStopServices2" After="RunQtExecCommand1">PREVIOUSFOUND</Custom> <Custom Action="RunQtExecCommand2" After="UpgradeStopServices2">PREVIOUSFOUND</Custom> <Custom Action="UpgradeStopServices3" After="RunQtExecCommand2">PREVIOUSFOUND</Custom> <Custom Action="RunQtExecCommand3" After="UpgradeStopServices3">PREVIOUSFOUND</Custom>
Neil -----Original Message----- From: Jiang, Chunyan (GE Healthcare) [mailto:chunyan.ji...@ge.com] Sent: 25 August 2009 15:32 To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] How to start an executable without showing commandline window Hi Neil, Thank you for your suggestion. I added another custom action as David Watson suggested. It works fine. However, I want to define more than one such custom action to perform calling executable quietly. I defined them as: <Property Id="QtExecCmdLine" Value="unset"/> <CustomAction Id="RunQtExecCommand" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="immediate" Return="ignore"/> <CustomAction Id='UpgradeStopServices1' Property='QtExecCmdLine' Value='"[APPLICATIONFOLDER]VPCommon\tao_imr.exe" -ORBInitRef ImplRepoService=file://[APPLICATIONFOLDER]VPCommon\Locator.ior shutdown VPWEBSERVER'/> <CustomAction Id='UpgradeStopServices2' Property='QtExecCmdLine' Value='"[APPLICATIONFOLDER]VPCommon\tao_imr.exe" -ORBInitRef ImplRepoService=file://[APPLICATIONFOLDER]VPCommon\Locator.ior shutdown VPARCHIVESERVER_[ComputerName]'/> <CustomAction Id='UpgradeStopServices3' Property='QtExecCmdLine' Value='"[APPLICATIONFOLDER]VPCommon\tao_imr.exe" -ORBInitRef ImplRepoService=file://[APPLICATIONFOLDER]VPCommon\Locator.ior shutdown VPDICOMSERVER_[ComputerName]'/> And in the Execute Sequence: <Custom Action="UpgradeStopServices1" Before="RunQtExecCommand">PREVIOUSFOUND</Custom> <Custom Action="UpgradeStopServices2" Before="RunQtExecCommand">PREVIOUSFOUND</Custom> <Custom Action="UpgradeStopServices3" Before="RunQtExecCommand">PREVIOUSFOUND</Custom> <Custom Action="RunQtExecCommand" After="CostFinalize">PREVIOUSFOUND</Custom> I would like to add RunQtExecCommand CA after every needed custom actions. But the compiler says "duplicated custom action". So I only add RunQtExecCommand after the last one "UpgradeStopServices3". When I run the .msi, only the last one executed. The other two CA didn't work. How to resolve this problem? Regards, Chunyan -----Ursprüngliche Nachricht----- Von: Neil Sleightholm [mailto:n...@x2systems.com] Gesendet: Montag, 24. August 2009 18:11 An: General discussion for Windows Installer XML toolset. Betreff: Re: [WiX-users] How to start an executable without showing commandline window You can't set the Property element to a formatted value ([APPLICATIONFOLDER] in your case) you either need another custom action to set it or I think you can use SetProperty if you arrange for your CustomAction/@Id value to match. Neil -----Original Message----- From: Jiang, Chunyan (GE Healthcare) [mailto:chunyan.ji...@ge.com] Sent: 24 August 2009 16:18 To: General discussion for Windows Installer XML toolset. Subject: [WiX-users] How to start an executable without showing command line window Hi Wix-users, I want to call one executable in custom action. But I don't like the command line window flashing when calling executable. So I tried to use CAQuietExec. My code is as below: <Property Id="QtExecCmdLine" Value="'tao_imr.exe' -ORBInitRef ImplRepoService=file://[APPLICATIONFOLDER]/VPCommon/Locator.ior shutdown VPWEBSERVER"/> <CustomAction Id='UpgradeStopServices1' BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="immediate" Return='ignore' /> However, when I run the .msi, the custom action doesn't work. In the installation log file, I found: MSI (s) (BC:98) [17:09:50:140]: Doing action: UpgradeStopServices1 Action 17:09:50: UpgradeStopServices1. Action start 17:09:50: UpgradeStopServices1. MSI (s) (BC:00) [17:09:50:155]: Invoking remote custom action. DLL: C:\WINDOWS\Installer\MSI80C.tmp, Entrypoint: CAQuietExec MSI (s) (BC:50) [17:09:50:155]: Generating random cookie. MSI (s) (BC:50) [17:09:50:171]: Created Custom Action Server with PID 5520 (0x1590). MSI (s) (BC:B4) [17:09:50:296]: Running as a service. MSI (s) (BC:B4) [17:09:50:296]: Hello, I'm your 32bit Impersonated custom action server. MSI (s) (BC!D0) [17:09:50:311]: PROPERTY CHANGE: Deleting QtExecCmdLine property. Its current value is ''tao_imr.exe' -ORBInitRef ImplRepoService=file://[APPLICATIONFOLDER]/VPCommon/Locator.ior shutdown VPWEBSERVER'. CAQuietExec: Command string must begin with quoted application name. CAQuietExec: Error 0x80070057: invalid command line property value CAQuietExec: Error 0x80070057: failed to get Command Line Action ended 17:09:50: UpgradeStopServices1. Return value 1. There are errors for CAQuietExec. What's wrong with the property value? If I set the custom action as normal: <CustomAction Id='UpgradeStopServices1' FileKey='tao_imr.exe' ExeCommand='tao_imr.exe -ORBInitRef ImplRepoService=file://[APPLICATIONFOLDER]/VPCommon/Locator.ior shutdown VPWEBSERVER' Execute="immediate" Return='ignore' /> Then everything works fine, except the command line window flashing. Could some one help me how to resolve this problem? Best regards, Chunyan ------------------------------------------------------------------------ ------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users