I have just installed Wix 3.6 because I need a bootstrapper-very timely RC, if 
I can actually get it working!

What I'm trying to do is install an msi first, then call an exe that the msi 
installed.  The exe performs additional configuration.  I was able to get this 
working in a way, but only by shipping two copies of the exe-one in the msi, 
and another that gets compressed separately in the bootstrapper.  The msi 
installs one copy, but the ExePackage's InstallCommand is actually being run on 
the second copy, which is in some temporary directory (C:\ProgramData\Package 
Cache\blahblahblah\lmadmin.exe).  While I think I can get that to work, it 
would be more convenient and would end up as a smaller download if I could call 
the exe that has already been installed.  Is there some way to do that?

Here's some sample code.  Note the "SourceFile" in the ExePackage, which I 
think is where I'd have to work some magic.  I can specify a relative path to 
an exe, but it's a relative path on my build machine, not a path on the 
destination machine.


<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi";>
    <Bundle Name="My Product Name" Version="1.2.3"
UpgradeCode="$(var.UpgradeGuid)">

        <BootstrapperApplicationRef 
Id="WixStandardBootstrapperApplication.RtfLicense" />

        <Chain>
            <!-- This msi installs a bunch of files, including one called 
'lmadmin.exe' -->
            <MsiPackage Compressed="yes" SourceFile="msipackage.msi" />

            <!-- Now I want to call lmadmin.exe with some parameters (elevated) 
-->
            <ExePackage Id="lmadmin_install_service"
                Compressed="yes"
                PerMachine="yes"
                SourceFile="how do I specify this path to lmadmin.exe?"
                InstallCommand="-installService"
                RepairCommand="-installService"
                UninstallCommand="-removeService "
            />

        </Chain>
    </Bundle>
</Wix>

Some more background to my problem:  you'd think I could do this in an msi 
using a custom action, but I have tried that and it isn't working.  This 
"lmadmin.exe" is a third-party file, it must be run as admin, but for some 
reason I don't fully understand it cannot be run as LocalSystem.  When I 
schedule it as a custom action with Impersonate="no" it runs as LocalSystem and 
thus fails; with impersonate="yes" it runs as the user but not elevated.  I'm 
trying to use a bootstrapper in the hopes it will run as the user but elevated.


Nate Hekman  |  Senior Software Developer
GEO-SLOPE International Ltd.  |  www.geo-slope.com<http://www.geo-slope.com/>
1400, 633 - 6th Ave SW, Calgary, AB, Canada T2P 
2Y5<http://maps.google.ca/maps?q=%231400,+633+6th+Ave+SW,+Calgary&hl=en&ll=51.047681,-114.075487&spn=0.009706,0.008787&sll=51.051161,-114.073491&sspn=0.009705,0.008787&vpsrc=0&hnear=633+6+Ave+SW,+Calgary,+Division+No.+6,+Alberta&t=h&z=17>
Main: +1 403 269 2002  |  Fax:  +1 403 266 4851

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to