I’ve been working hard at cleaning up my code, getting the directories to work in XML, and cleaning up my code generator so that WiX would accept it.
So far this is what XRap can do:
- Takes a correctly structured XULRunner application, with the XULRunner runtime directory in the application directory, and create a .wxs WiX file
- Gets the application name and vendor from the application.ini file, where Vendor will represent the directory to be installed in the ‘Program Files’ directory, and the Name will be a sub-directory of the vendor
- Create an executable (appname.exe) in the application directory, using the xulrunner-stub.exe found in the xulrunner runtime directory
- WiX then takes the .wxs and compiles it using a program called Candle, if successful it will create a .wixobj
- WiX take the compiled .wixobj file and links it using Light, which if successful will create the msi
- When the msi is run, it will automatically install the application to the end-users ‘Program Files’ folder, add a shortcut to the executable (appname.exe) in the Start menu, and adds the application to the Add/Remove Programs list
What XRap needs from the developer:
- Unzip XRap to a useful location
- XulRunner Runtime in a directory within the application directory
- The application directory and XRap.exe (and its unzipped files) are in the same folder
- All files must have an extension (in the XulRunner Runtime main directory there is a file called Licence which needs the extension .txt added to it. I’m going to try an resolve this issue)
- The XulRunner application works using -> C:\appName>xulrunner.exe application.ini
- Run XRap using the command -> C:\>XRap.exe AppDirectory
- where AppDirectory is the directory of the application
I’m working on the WiX UI installer, which will allow the end-user to select what type of installation (Typical, Full, or Custom), allows the user to select the location of the installation, show the licence the software is applied to, and just provide the user more information about the installation. I’m trying to make amount of work from the developer minimal, but it seems like for the UI installer to work I will need some input from the developer.