Thx Matt, used another custom action to set the property and now the deferred custom action works!
Imri On Mon, May 10, 2010 at 7:46 PM, Matt Johnson <[email protected]> wrote: > You can't access properties directly from a defered custom action. You > have to use another custom action that sets a property matching the name of > your action. See the wix docs on caquietexec for examples. > > -Matt > > Sent from my iPhone > > On May 10, 2010, at 7:16 AM, "Imri Lubbe" <[email protected]> wrote: > > Thx Matt, that did the trick, but i hit another snag on the same issue. > When i install to a user specific destination, the QtExecute action works, > but when i do an install for all users i get an Access Denied message when > the QtExecute is performed. I presume the reason for this is that > uninstall.exe is then located under c:\Program Files\Appname and the UAC > does not allow a Standard User to delete from there? Iv'e looked around a > bit and it is suggested to do a deferred execute with Impersonate set to no. > Iv'e tried that : > > <Property Id="QtExecDeferred" Value='"[SystemFolder]\Cmd.exe" /C del /Q > "[APPLICATIONFOLDER]\uninstall.exe"'/> > <CustomAction Id="QtExecDeferred" BinaryKey="WixCA" > DllEntry="CAQuietExec" Execute="deferred" Return="ignore" Impersonate="no"/> > > But i get the following error: > > Action 16:03:22: QtExecDeferred. > MSI (s) (D4:40) [16:03:22:362]: Executing op: > CustomActionSchedule(Action=QtExecDeferred,ActionType=3137,Source=BinaryData,Target=CAQuietExec,CustomActionData="[SystemFolder]\Cmd.exe" > /C del /Q "[APPLICATIONFOLDER]\uninstall.exe") > MSI (s) (D4:E8) [16:03:22:378]: Invoking remote custom action. DLL: > C:\Windows\Installer\MSI7586.tmp, Entrypoint: CAQuietExec > MSI (s) (D4:BC) [16:03:22:378]: Generating random cookie. > MSI (s) (D4:BC) [16:03:22:378]: Created Custom Action Server with PID 2720 > (0xAA0). > MSI (s) (D4:C4) [16:03:22:409]: Running as a service. > MSI (s) (D4:C4) [16:03:22:409]: Hello, I'm your 32bit Elevated custom > action server. > CAQuietExec: Error 0x80070002: Command failed to execute. > CAQuietExec: Error 0x80070002: CAQuietExec Failed > > Iv'e searched around a bit and it seems that HResult 0x80070002 means that > the file could not be found. I'm guessing that maybe [APPLICATIONFOLDER] can > not be resolved when doing a deferred execution? > > Any advice would again be much appreciated! > > Regards, > Imri Lubbe > > On Fri, May 7, 2010 at 8:34 PM, Matt Johnson < <[email protected]> > [email protected]> wrote: > >> Actually, you need /C to the cmd.exe also. >> >> <Property Id="QtExecCmdLine" Value='"[SystemFolder]\Cmd.exe" /C del /Q >> "[APPLICATIONFOLDER]\uninstall.exe"'/> >> >> >> >> Matt Johnson MCPD, MCTS, MCSD, MCDBA >> Director of Application Development >> Time America, Inc. >> <[email protected]>[email protected] | >> <http://www.timeamerica.com>www.timeamerica.com >> >> From: Matt Johnson [mailto: <[email protected]>[email protected]] >> Sent: Friday, May 07, 2010 6:16 AM >> To: Windows Installer XML toolset developer mailing list >> Subject: Re: [WiX-devs] Deleting an exe file that was launched during >> Uninstall >> >> Specify /Q to the del command. >> >> Matt Johnson MCPD, MCTS, MCSD, MCDBA >> Director of Application Development >> Time America, Inc. >> <[email protected]>[email protected] | >> <http://www.timeamerica.com>www.timeamerica.com >> >> From: Imri Lubbe [mailto: <[email protected]>[email protected]] >> Sent: Friday, May 07, 2010 5:35 AM >> To: <[email protected]>[email protected] >> Subject: [WiX-devs] Deleting an exe file that was launched during >> Uninstall >> >> Hi all, >> >> Iv'e got the following problem: >> >> On the uninstall of my application I call an external wrapper >> (uninstall.exe, basically an nsis script that asks the user if they want to >> uninstall custom user data created during the product's life span or not). >> This works and if the user choses to delete the custom user data, the >> uninstall.exe wrapper runs first deleting the custom user data and the WiX >> cleans up the rest. The only problem is that the uninstall.exe wrapper gets >> left in the application directory and i don't know how to get rid of it... >> Iv'e tried using QtExecCmdLine to remove it via the command line, like so: >> <Property Id="QtExecCmdLine" Value='"[SystemFolder]\Cmd.exe" del >> "[APPLICATIONFOLDER]\uninstall.exe"'/> >> <CustomAction Id="QtExecute" BinaryKey="WixCA" DllEntry="CAQuietExec" >> Execute="immediate" Return="check"/> >> >> <Custom Action="QtExecute" After="InstallFinalize"/> >> >> But during the Uninstall when the Qt Custom Action runs, the command line >> gets stuck on the command and i have to manually close the command >> line(running in the background) with a program like Windows Defenders >> Software Explorer. No error is being reported by the Verbose Debugger. >> >> MSI (s) (F8:1C) [14:12:14:753]: Doing action: QtExecute >> MSI (s) (F8:1C) [14:12:14:753]: Note: 1: 2205 2: 3: ActionText >> Action 14:12:14: QtExecute. >> Action start 14:12:14: QtExecute. >> MSI (s) (F8:CC) [14:12:14:753]: Invoking remote custom action. DLL: >> C:\Windows\Installer\MSI2FBF.tmp, Entrypoint: CAQuietExec >> MSI (s) (F8:34) [14:12:14:753]: Generating random cookie. >> MSI (s) (F8:34) [14:12:14:768]: Created Custom Action Server with PID 3156 >> (0xC54). >> MSI (s) (F8:40) [14:12:14:800]: Running as a service. >> MSI (s) (F8:40) [14:12:14:800]: Hello, I'm your 32bit Impersonated custom >> action server. >> MSI (s) (F8!5C) [14:12:14:831]: PROPERTY CHANGE: Deleting QtExecCmdLine >> property. Its current value is '"[SystemFolder]\Cmd.exe" del >> "[APPLICATIONFOLDER]\uninstall.exe"'. >> CAQuietExec: Microsoft Windows >> CAQuietExec: Copyright (c) 2006 Microsoft Corporation. All rights >> reserved. >> CAQuietExec: >> Action ended 14:12:38: QtExecute. Return value 1. >> Action ended 14:12:38: INSTALL. Return value 1. >> >> Any suggestions would be greatly appreciated. >> >> Thx, >> >> Imri >> >> >> ------------------------------------------------------------------------------ >> >> _______________________________________________ >> WiX-devs mailing list >> <[email protected]>[email protected] >> <https://lists.sourceforge.net/lists/listinfo/wix-devs> >> https://lists.sourceforge.net/lists/listinfo/wix-devs >> > > <ATT00001..c> > > <ATT00002..c> > > > > ------------------------------------------------------------------------------ > > > _______________________________________________ > WiX-devs mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/wix-devs > >
------------------------------------------------------------------------------
_______________________________________________ WiX-devs mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/wix-devs
