[wix-users] Having issue running an executable from package in a managed custom action

Phill Hogland phill.hogland at rimage.com
Tue Feb 21 07:50:24 PST 2017


Based on this thread, it sounds like to just add the EXE to your managed CA project as 'content' and then it will get extracted to the TEMP folder.

http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Extract-Binary-file-from-MSI-to-Temp-folder-using-C-td7588682.html


But I have not done this myself.


________________________________
From: wix-users <wix-users-bounces at lists.wixtoolset.org> on behalf of Tigran Galoyan <tigran.galoyan at gmail.com>
Sent: Tuesday, February 21, 2017 9:38:02 AM
To: WiX Toolset Users Mailing List
Subject: Re: [wix-users] Having issue running an executable from package in a managed custom action

Hi Phill,

Thanks for the quick reply. I might need to look into WMI as an alternative
approach, however, the DComPerm from WinSDK, even though from the old
Win2K/WinXP era does the job on my Win7 OS when launched from command
prompt. So, I thought it would work if launched from within my managed
custom action. I hope it would work if I only found a way to run an
executable from my package without installing it. That's what I'm
struggling with at the moment :)

Thanks,
Tigran


On Tue, Feb 21, 2017 at 10:09 AM, Phill Hogland <phill.hogland at rimage.com>
wrote:

> I do not know the answer to your question about launching an exe from
> within a MSI without installing it.  I use a Burn bundle to chain my MSIs,
> and burn can launch a configuration app at the end of the chain.  See
> ApprovedExeForElevation in the CHM.  I believe that DComPerm was a sample
> from the WinSDK from Win2K/WinXP era and it is known to have some issues
> with regard to newer x64 OS.  If using a managed CA it seems that using WMI
> objects would be a better choice.  For a native CA I found looking at the
> WixComPlus extension's source to be helpful when writing a CA that
> configures DCOM security.   This might be helpful.
>
> http://stackoverflow.com/questions/11363342/change-
> dcom-config-security-settings-using-powershell
>
>
> ________________________________
> From: wix-users <wix-users-bounces at lists.wixtoolset.org> on behalf of
> Tigran Galoyan <tigran.galoyan at gmail.com>
> Sent: Tuesday, February 21, 2017 8:37:01 AM
> To: wix-users at lists.wixtoolset.org
> Subject: [wix-users] Having issue running an executable from package in a
> managed custom action
>
> Hi all,
>
>
> I have a MSI package that besides the actual components to be installed
> also on the target machine also has an executable, that should not be
> installed, rather just be launched after a successful installation in the
> managed custom action. The custom action code snippet is the following:
>
>
>
>
>
>
>
>
> *public class CustomActions{    [CustomAction]    public static
> ActionResult CAM_RunDComPerm(Session session)    {        try
> {            string path2DComPermExe =
> Path.Combine(Assembly.GetExecutingAssembly().Location, "DComPerm.exe");*
>
>
>
>
>
>
>
>
>
>
> *            using (Process proc = Process.Start(path2DComPermExe, "-runas
> \"{SOME-GUID}\" username password"))            {
> proc.WaitForExit(5000);            }                            return
> ActionResult.Success;        }        catch (Exception ex)
> {            session.Log("ERROR in CAM_RunDComPerm custom action {0}",
> ex.ToString());*
>
>
>
> *            return ActionResult.Failure;        }    }}*
>
> What it does exactly, it sets some DCOM settings for a specific component
> that gets installed as part of the MSI package. To do that I run a special
> tool DComPerm.exe with the "-runas \"{SOME-GUID}\" username password"
> command line arguments.
>
> To call the custom action I have the following in my main wxs file:
>
>
>
> *<InstallExecuteSequence>     <Custom Action="CA_LaunchDComPerm"
> After="InstallFinalize">NOT Installed</Custom></InstallExecuteSequence>*
>
> *<Binary Id="MyInstallerCustomActions" SourceFile
> ="..\Output\MyCustomActions.CA.dll" />*
> *<CustomAction Id="CA_LaunchDComPerm" Return="check"
> BinaryKey="MyInstallerCustomActions" DllEntry="CAM_RunDComPerm"
> Impersonate="no" />*
>
> However, the custom action call fails right at the beginning when combining
> the path to get the absolute path to the DComPerm.exe tool to be called.
> Looks like it cannot figure out the absolute path to the tool in the MSI
> package. I don't want to install that tool along with other components and
> then launch it at the end from the INSTALLDIRECTORY (my target directory to
> install to), but to simply launch it as it exists in the package.
> Unfortunately cannot specify the absolute path to it.
>
> Any help how to make this happen?
>
>
> Thanks,
> Tigran
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant
> http://www.firegiant.com/
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant
> http://www.firegiant.com/
>

____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/


More information about the wix-users mailing list