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]<mailto:[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 
<<mailto:[email protected]>[email protected]<mailto:[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.
<mailto:[email protected]>[email protected]<mailto:[email protected]>
 | <http://www.timeamerica.com> www.timeamerica.com<http://www.timeamerica.com>

From: Matt Johnson 
[mailto:<mailto:[email protected]>[email protected]<mailto:[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.
<mailto:[email protected]>[email protected]<mailto:[email protected]>
 | <http://www.timeamerica.com> www.timeamerica.com<http://www.timeamerica.com>

From: Imri Lubbe 
[mailto:<mailto:[email protected]>[email protected]<mailto:[email protected]>]
Sent: Friday, May 07, 2010 5:35 AM
To: <mailto:[email protected]> 
[email protected]<mailto:[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
<mailto:[email protected]>[email protected]<mailto:[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

Reply via email to