[wix-users] [EXTERNAL] - Re: Custom Action - Call a Lua File

Russell Haley russ.haley at gmail.com
Tue Feb 6 22:06:26 PST 2018


On Tue, Feb 6, 2018 at 6:04 AM, Lewis Henderson via wix-users
<wix-users at lists.wixtoolset.org> wrote:
> Hi Russell,
>
> To launch a .bat file, you have to lunch a command shell such as cmd.exe and pass your script as an argument to the command shell.

I'd really just like to launch the application and pass parameters
harvested from the installation (e.g. paths to files)? I can create a
custom C# action if need be but I am hoping to avoid that. The batch
file is a last ditch resort and not working well because I have to
detect the path from within the lua scripts, which is not reliable.

Russ

>                                 Lewis
>
> -----Original Message-----
> From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Russell Haley via wix-users
> Sent: Tuesday, February 6, 2018 1:52 AM
> To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
> Cc: Russell Haley <russ.haley at gmail.com>
> Subject: [EXTERNAL] - Re: [wix-users] Custom Action - Call a Lua File
>
> Hi,
>
> So I have added the checkbox item to the exit dialog and I can successfully launch the installed lua.exe via WixShellExec, but I can't run it with a script. I've tried creating a batch file and launching it that way too, with no success.  What I want to do is execute the following command, preferrably in a visible shell:
>
> lua.exe ..\tools\fetch-luarocks.lua -install <path to folder> -bin <path to installed bin> ...
>
> Attempts so far (without the command line options):
>
> <!-- THIS WORKS, BUT I WANT TO LAUNCH MY SCRIPT
>   <Property Id="WixShellExecTarget" Value="[#lua.exe]"  />
>   <CustomAction Id="LaunchApplication"
>               BinaryKey="WixCA"
>               DllEntry="WixShellExec"
>               Impersonate="yes" />-->
>
> <!--THIS FAILED WITH ?
>   <CustomAction Id="LaunchApplication"
>               FileKey="run_fetch.bat"
>               ExeCommand=""
>               Execute="immediate"
>               Impersonate="yes"/>-->
>
>     <!--THIS DIDN"T WORK AT ALL. Exit code 1
>     <CustomAction Id="RunLua"
>                   FileKey="lua.exe"
>                   Win64="no"
>                   ExeCommand="..\tools\fetch-luarocks.lua" />
>     <InstallExecuteSequence>
>       <Custom Action="RunLua" After="InstallFinalize" />
>     </InstallExecuteSequence>-->
>
> hmmmm....
>
> Russ
>
>
> On Sun, Feb 4, 2018 at 8:56 PM, Russell Haley <russ.haley at gmail.com> wrote:
>> Holy crap, there's like real, *useful* help files in my wix
>> installation. I'm gobsmacked. I can't remember the last time I didn't
>> open a chm file and groan.
>>
>> Thanks!
>> Russ
>>
>> On Wed, Jan 31, 2018 at 11:19 PM, Russell Haley <russ.haley at gmail.com> wrote:
>>> Hello,
>>>
>>> TLDR;
>>>
>>> My custom action returns Exit code 1 in the debug logs. I don't know
>>> how to pass the "relative installation path" in the CustomAction to
>>> the script I want called. Here is the product.wxs files with the
>>> custom action at the bottom. Any input would be grand.
>>>
>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_WinLu
>>> a_WinLua-2DVisualStudio_blob_master_Visual-2520Studio_WinLua-2DInstal
>>> ler_Product.wxs&d=DwICAg&c=ZgVRmm3mf2P1-XDAyDsu4A&r=yAhF6NGJ7EPmZkvsw
>>> ZOswwnYxaueKkO53V282tTn1P4&m=I2IABXjJH2fxNlh_bwXiVyhTcdsOwCpwo7i_eCm7
>>> 6Gs&s=lsDJD-kzRaxsy8QnWx8EXGbjzeIv-lIHcWP2lHAo0g0&e=
>>>
>>> Full Content:
>>>
>>> I have an installer for Lua on Windows I'm now calling WinLua. It
>>> works quite well so far. I would like to add the ability at the end
>>> of the installation to optionally download and install LuaRocks (the
>>> lua package manager). I have written a Lua script to download and run
>>> it by calling Powershell commands from within lua. I have tested it
>>> running under program files and set up the installer to add the
>>> scripts. I have also turned Set-ExecutionPolicy to Default.
>>>
>>> My installer add files here:
>>>
>>> c:\Program Files\WinLua\Lua\5.3\
>>>
>>> \bin - lua.exe
>>> \tools fetch-luarocks.lua
>>>
>>> The target directory for LuaRocks also under my installed application
>>> path with a final installed product like such:
>>>
>>>     Directory: C:\Program Files\WinLua\lua\5.3
>>>
>>>
>>> Mode                LastWriteTime         Length Name
>>> ----                -------------         ------ ----
>>> d-----       2018-01-31  10:20 PM                bin
>>> d-----       2018-01-31  10:20 PM                include
>>> d-----       2018-01-29  10:11 PM                LuaRocks
>>> d-----       2018-01-31  10:20 PM                staticlib
>>> d-----       2018-01-31  10:20 PM                tools
>>>
>>> I have created a CustomAction hoping to execute the newly installed
>>> Lua and call the lua script file in the tools directory. I don't know
>>> how to us a relative path to the installation so I don't think the
>>> script is being found? My custom action is this:
>>>
>>>     <CustomAction Id="RunLua"
>>>                   FileKey="lua.exe"
>>>                   Win64="no"
>>>                   ExeCommand="..\tools\fetch-luarocks.lua -u" />
>>>     <InstallExecuteSequence>
>>>       <Custom Action="RunLua" After="InstallFinalize" />
>>>     </InstallExecuteSequence>
>>>
>>>
>>> I turned on debugging in the MSI and the relevant part is this:
>>>
>>> Action ended 22:20:20: InstallFinalize. Return value 1.
>>> MSI (s) (98:0C) [22:20:20:960]: Doing action: RunLua MSI (s) (98:0C)
>>> [22:20:20:960]: Note: 1: 2205 2:  3: ActionText Action 22:20:20:
>>> RunLua.
>>> Action start 22:20:20: RunLua.
>>> CustomAction RunLua returned actual error code 1 (note this may not
>>> be 100% accurate if translation happened inside sandbox) MSI (s)
>>> (98:0C) [22:20:21:109]: Note: 1: 1722 2: RunLua 3: C:\Program
>>> Files\WinLua\Lua\5.3\bin\lua.exe 4: ..\tools\fetch-luarocks.lua -u
>>> MSI (s) (98:0C) [22:20:21:109]: Note: 1: 2205 2:  3: Error MSI (s)
>>> (98:0C) [22:20:21:109]: Note: 1: 2228 2:  3: Error 4: SELECT
>>> `Message` FROM `Error` WHERE `Error` = 1722 Error 1722. There is a
>>> problem with this Windows Installer package. A program run as part of
>>> the setup did not finish as expected. Contact your support personnel
>>> or package vendor.  Action RunLua, location:
>>> C:\Program Files\WinLua\Lua\5.3\bin\lua.exe, command:
>>> ..\tools\fetch-luarocks.lua -u
>>> MSI (s) (98:0C) [22:20:24:259]: Note: 1: 2205 2:  3: Error MSI (s)
>>> (98:0C) [22:20:24:259]: Note: 1: 2228 2:  3: Error 4: SELECT
>>> `Message` FROM `Error` WHERE `Error` = 1709 MSI (s) (98:0C)
>>> [22:20:24:259]: Product: Lua 5.3 64 Bit -- Error 1722.
>>> There is a problem with this Windows Installer package. A program run
>>> as part of the setup did not finish as expected. Contact your support
>>> personnel or package vendor.  Action RunLua, location: C:\Program
>>> Files\WinLua\Lua\5.3\bin\lua.exe, command:
>>> ..\tools\fetch-luarocks.lua -u
>>>
>>> Action ended 22:20:24: RunLua. Return value 3.
>>> Action ended 22:20:24: INSTALL. Return value 3.
>>>
>>> The full output of the log file is here:
>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__pastebin.com_LG7
>>> zFuKm&d=DwICAg&c=ZgVRmm3mf2P1-XDAyDsu4A&r=yAhF6NGJ7EPmZkvswZOswwnYxau
>>> eKkO53V282tTn1P4&m=I2IABXjJH2fxNlh_bwXiVyhTcdsOwCpwo7i_eCm76Gs&s=2CHy
>>> MAUBuCt3jY7fev2JibpDWfG0K_NsvMTWWwibRsU&e=
>>>
>>> Any input would be great.
>>>
>>> A secondary problem I have is that the installer will try to run the
>>> script again on uninstall. I am hoping there is a way to
>>> differentiate between installation and removal in a custom action?
>>> Any input would be great as I'm new to custom actions.
>>>
>>> The full installer sources are here:
>>>
>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_WinLu
>>> a_WinLua-2DVisualStudio_tree_master_Visual-2520Studio_WinLua-2DInstal
>>> ler&d=DwICAg&c=ZgVRmm3mf2P1-XDAyDsu4A&r=yAhF6NGJ7EPmZkvswZOswwnYxaueK
>>> kO53V282tTn1P4&m=I2IABXjJH2fxNlh_bwXiVyhTcdsOwCpwo7i_eCm76Gs&s=PunOH2
>>> aHm_613_YNotX-6e7ijYmuELcv769mhVQPKZ8&e=
>>>
>>> Cheers,
>>>
>>> Russell
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant https://urldefense.proofpoint.com/v2/url?u=http-3A__www.firegiant.com_&d=DwICAg&c=ZgVRmm3mf2P1-XDAyDsu4A&r=yAhF6NGJ7EPmZkvswZOswwnYxaueKkO53V282tTn1P4&m=I2IABXjJH2fxNlh_bwXiVyhTcdsOwCpwo7i_eCm76Gs&s=fg2-4hLfbvP3XE8zgDOFTBxThkejs6NYDzTfqMw5bg8&e=
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/


More information about the wix-users mailing list