Binary Elements are extracted to temporary directories using auto
generated filenames (see a verbose log for an example). It's not
possible to use an application in a Binary Element with QtExec (I looked
at the same thing a while ago for a plug-in installer). You'll either
need to change it to use a File Element & modify the CustomAction to use
[#fileid] instead of "myexec.exe" or live without QtExec or as
Blair says, write your own Custom Actions to write the Binary to disk in
a known location so QtExec can run it.

Palbinder Sandher 
Software Deployment & IT Administrator
T: +44 (0) 141 945 8500 
F: +44 (0) 141 945 8501 

http://www.iesve.com 
**Design, Simulate + Innovate with the <Virtual Environment>**
Integrated Environmental Solutions Limited. Registered in Scotland No.
SC151456 
Registered Office - Helix Building, West Of Scotland Science Park,
Glasgow G20 0SP
Email Disclaimer

-----Original Message-----
From: Leigh Wetmore [mailto:lwetm...@gmail.com] 
Sent: 17 June 2010 18:29
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Quiet Execution of an executable embedded within
the MSI

Hello,

I'm trying to figure out how to quietly execute (QtExec) an executable
that I include within my MSI yet do not want installed on the user's
machine.

I've been able to achieve this without using the quiet execute feature,
but I don't like the command window popping up during installation.
Here is the code for that:

    <Binary Id="CfgUpdateExe" SourceFile="..\bin\myexe.exe" />

    <CustomAction
      Id="LaunchCfgUpdateExe"
      BinaryKey="CfgUpdateExe"
      ExeCommand="&quot;[TempFolder]UpdateLog.txt&quot; UpdateAppConfig
&quot;[DASLocation]myexec.exe.Config&quot;"
      Execute="deferred"
      Impersonate="no"
      Return="asyncNoWait" />

    <InstallExecuteSequence>
      <Custom Action="LaunchCfgUpdateExe"
After="InstallInitialize">OLDERVERSIONDETECTED</Custom>
    </InstallExecuteSequence>

I use the binary element to bring the executable (myexe.exe) into the
MSI, then launch a custom action with the necessary arguments.  I have
it executing as deferred with no impersonation as I need the admin
privileges already captured by the installer to carry through to the
executable.
 Again, this works fine.

However, if I try to convert this to use QtExec, I'm unable to get it to
work.  Looking in the MSI install log, I see:

CAQuietExec:  Error 0x80070002: Command failed to execute.
CAQuietExec:  Error 0x80070002: CAQuietExec Failed

Here is my code so far:

    <Binary Id="CfgUpdateExe" SourceFile="..\bin\myexec.exe" />

    <CustomAction
      Id="QtExecCommand"
      Property="QtExecUserCfg"
      Value="&quot;myexec.exe&quot;
&quot;[TempFolder]UpdateLog.txt&quot;
&quot;UpdateAppConfig&quot; &quot;[DASLocation]myexec.exe.Config&quot;"
      Execute="immediate" />
    <CustomAction Id="QtExecUserCfg" BinaryKey="WixCA"
DllEntry="CAQuietExec" Execute="deferred" Impersonate="no"
Return="check"/>

    <InstallExecuteSequence>
      <Custom Action="QtExecCommand"
After="CostFinalize">OLDERVERSIONDETECTED</Custom>
      <Custom Action="QtExecUserCfg"
After="InstallInitialize">OLDERVERSIONDETECTED</Custom>
    </InstallExecuteSequence>

I've left the binary element there, but I don't think the custom actions
know about it.  It looks like QtExec can't find the executable which
makes sense (I can have it run notepad.exe no problem).  I'm thinking
maybe the files in the MSI, including myexec.exe, get extracted to a
temp directory during installation, and I can potentially reference it,
like Value="&quot;[MSITempDir]myexec.exe...?

Thanks in advance for any help anyone can provide.

Leigh
------------------------------------------------------------------------
------
ThinkGeek and WIRED's GeekDad team up for the Ultimate GeekDad Father's
Day Giveaway. ONE MASSIVE PRIZE to the lucky parental unit.  See the
prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users



------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to