Latest info in regards to creating version 2.0 manually of the Windows Bootloader for WebStart WEPS - LEW - 11/26/2024 Now configured to use launch4j version 3.50 0. Must ensure that we do a "Clean & Build" so that NetBeans updates the "weps.bootloader-webstart.jar" file in the "dist" folder. It does not necessarily update that jar file in the "dist" folder if one just executes an "incremental" build. 1. Update User Manual (PDF build) a. Update the Word (docx) User Manual as necessary b. Use "Save As" to create a PDF version 2. Create a Windows MSI installable build of the bootloader program a. Copy ALL content from the "dist" folder (including the "lib" folder and contents) into this "WIX_WEPS_Bootloader" folder Note that copying only the "weps.boot-webstart.jar" file apparently is not sufficient. b. Run the following launch4j command to create a wrapped executable version of the WEPS Bootloader.jar file "/cygdrive/c/Program Files (x86)/Launch4j/launch4jc.exe" "./WEPS_Bootloader_launch4j.cfg" c. Run the WIX "candle" program "/cygdrive/c/Program Files (x86)/WiX Toolset v3.14/bin/candle.exe" WEPS_Bootloader.wxs d. Run the WIX "light" program "/cygdrive/c/Program Files (x86)/WiX Toolset v3.14/bin/light.exe" WEPS_Bootloader.wixobj e. Run the "msiexec" program to create the MSI file (This will attempt to install it as well) msiexec /i WEPS_Bootloader.msi /log WEPS_Bootloader.log Latest info in regards to creating veriosn 1.1 manually of the Windows Bootloader for WebStart WEPS - LEW - 10/01/2024 NOTE: Need to do a "clean" build. It doesn't seem to completely build a new jar file every time without doing so for some reason - LEW - 10-01-2024 Installed launch4j (version 3.50) and WIX (version 3.14.1) - Note newer versions (both 4.x and 5.x) of WIX are entirely different Iteratively: Updated the Word document and created a new PDF version of the WebStart WEPS Bootloader manual Updated the WEPS_Bootloader_launch4j.cfg file Updated the WEPS_Bootloader.wxs file Larry Wagner@DESKTOP-96T2J12 /cygdrive/l/NetBeans_Projects/WEPS_Projects/Damian/weps.bootstrap-noWebstart/WIX WEPS Bootloader $ "/cygdrive/c/Program Files (x86)/Launch4j_3.14/launch4jc.exe" "L:/NetBeans_Projects/WEPS_Projects/Damian/weps.bootstrap-noWebstart/WIX WEPS Bootloader/WEPS_Bootloader_launch4j.cfg" launch4j: Compiling resources launch4j: Linking launch4j: Wrapping WARNING: Sign the executable to minimize antivirus false positives or use launching instead of wrapping. launch4j: Successfully created L:\NetBeans_Projects\WEPS_Projects\Damian\weps.bootstrap-noWebstart\WIX WEPS Bootloader\.\WEPS_Bootloader.exe Larry Wagner@DESKTOP-96T2J12 /cygdrive/l/NetBeans_Projects/WEPS_Projects/Damian/weps.bootstrap-noWebstart/WIX WEPS Bootloader Using the WIX tools here (version 3.14.1) Larry Wagner@DESKTOP-96T2J12 /cygdrive/l/NetBeans_Projects/WEPS_Projects/Damian/weps.bootstrap-noWebstart/WIX WEPS Bootloader $ candle WEPS_Bootloader.wxs Windows Installer XML Toolset Compiler version 3.14.1.8722 Copyright (c) .NET Foundation and contributors. All rights reserved. WEPS_Bootloader.wxs Larry Wagner@DESKTOP-96T2J12 /cygdrive/l/NetBeans_Projects/WEPS_Projects/Damian/weps.bootstrap-noWebstart/WIX WEPS Bootloader $ light WEPS_Bootloader.wixobj Windows Installer XML Toolset Linker version 3.14.1.8722 Copyright (c) .NET Foundation and contributors. All rights reserved. light.exe : warning LGHT1032 : Unable to reset acls on destination files. Larry Wagner@DESKTOP-96T2J12 /cygdrive/l/NetBeans_Projects/WEPS_Projects/Damian/weps.bootstrap-noWebstart/WIX WEPS Bootloader $ msiexec /i WEPS_Bootloader.msi /log WEPS_Bootloader.log wagner@ARSCOFTC4ALWV57 /cygdrive/l/NetBeans_Projects/baseline/Daryn/weps.bootstrap-noWebstart/WIX WEPS Bootloader "/cygdrive/c/Program Files (x86)/Launch4j/launch4jc.exe" WEPS_Bootloader_launch4j.cfg launch4j: Compiling resources launch4j: Linking launch4j: Wrapping WARNING: Sign the executable to minimize antivirus false positives or use launching instead of wrapping. launch4j: Successfully created L:\NetBeans_Projects\baseline\Daryn\weps.bootstrap-noWebstart\WIX WEPS Bootloader\.\WEPS_Bootloader.exe wagner@ARSCOFTC4ALWV57 /cygdrive/l/NetBeans_Projects/baseline/Daryn/weps.bootstrap-noWebstart/WIX WEPS Bootloader exit Windows Installer XML Toolset Compiler version 3.11.2.4516 Copyright (c) .NET Foundation and contributors. All rights reserved. WEPS_Bootloader.wxs wagner@ARSCOFTC4ALWV57 /cygdrive/l/NetBeans_Projects/baseline/Daryn/weps.bootstrap-noWebstart/WIX WEPS Bootloader light WEPS_Bootloader.wixobj Windows Installer XML Toolset Linker version 3.11.2.4516 Copyright (c) .NET Foundation and contributors. All rights reserved. light.exe : warning LGHT1032 : Unable to reset acls on destination files. wagner@ARSCOFTC4ALWV57 /cygdrive/l/NetBeans_Projects/baseline/Daryn/weps.bootstrap-noWebstart/WIX WEPS Bootloader $ msiexec /i WEPS_Bootloader.msi /log WEPS_Bootloader.log Summarization of original email message to Daryn regarding the steps (command lines) to run to create the "exe" file and the final desired "msi" file: Requires WIX 3.14 and Launch4j to be installed to create the MSI file. 1. Create the "exe" file from the previously compiled jar file: weps.boot-webstart.jar > launch4j WEPS_Bootloader_launch4j.cfg Use "launch4jc.exe" with Windows, e.g: > launch4jc.exe WEPS_Bootloader_launch4j.cfg The provided WEPS_Bootloader_launch4j.cfg file contains expects the "weps.boot-webstart.jar file to exist in the current directory. It will create a Windows executable file named: WEPS_Bootloader.exe 2. The following files must reside within the same root folder like so: WEPS_Bootloader/ lib/ libfiles here - list of necessary jar files residing under the "lib/" folder weps.boot-webstart.jar - compiled WEPS Bootloader WEPS_Bootloader.exe - "exe" file created with launch4j as specified above Helper.dll - May be necessary for accessing the PDF User's Manual (was used in the WIX tutorial used to develop the WIX file here) WEPS_Bootloader_Manual.pdf - User's Manual for the WEPS Bootloader (created from the MS Word file) WEPS_Bootlaoder_Manual.docx - MS Word source file to PDF version of User's Manual WEPS_Bootloader_launch4j.cfg - configuration file for creating "exe" using launch4j WEPS_Bootloader.wxs - WIX XML file configuration file specifying how to build the MSI file WEPS_Bootloader.wixobj - WIX's "candle" output (created during step 1 in building the MSI file) WEPS_Bootloader.wixpdb - WIX's "candle" output (created during step 1 in building the MSI file) PDF.ico - icon used for PDF User's Manual WEPS_Bootloader.log - log file created if command line specified below used for "msiexec" to install the bootloader WEPS_Bootloader.msi - WIX's "light" output (created during step 2 in building the MSI file) launch4j.log - log file created by launch4j command as specified above 3. Step 1 in the MSI creation process > candle WEPS_Bootloader.wxs 4. Step 2 in the MSI creation process > light WEPS_Bootloader.wixobj 5. Command line to install "Bootloader.msi" file (Windows Command Prompt): > msiexec /i WEPS_Bootloader.msi /l* WEPS_Bootloader.log 6. Command line to uninstall the wEPS Bootloader (Windows Command Prompt): > msiexec /x WEPS_Bootloader.msi All of this should be properly scripted for Jenkins to do the compilation and the "exe" and "MSI" builds automatically. Here is the latest set of Cygwin commands needed on my PC (since some of these apps are not on my path) 1. wagner@ARSCOFTC4ALWV57 /cygdrive/l/NetBeans_Projects/baseline/Daryn/weps.bootstrap-noWebstart/WIX WEPS Bootloader $ /cygdrive/c/Program\ Files\ \(x86\)/Launch4j/launch4jc.exe WEPS_Bootloader_launch4j.cfg launch4j: Compiling resources launch4j: Linking launch4j: Wrapping WARNING: Sign the executable to minimize antivirus false positives or use launching instead of wrapping. launch4j: Successfully created L:\NetBeans_Projects\baseline\Daryn\weps.bootstrap-noWebstart\WIX WEPS Bootloader\.\WEPS_Bootloader.exe 2. wagner@ARSCOFTC4ALWV57 /cygdrive/l/NetBeans_Projects/baseline/Daryn/weps.bootstrap-noWebstart/WIX WEPS Bootloader $ candle WEPS_Bootloader.wxs Windows Installer XML Toolset Compiler version 3.11.2.4516 Copyright (c) .NET Foundation and contributors. All rights reserved. WEPS_Bootloader.wxs 3. wagner@ARSCOFTC4ALWV57 /cygdrive/l/NetBeans_Projects/baseline/Daryn/weps.bootstrap-noWebstart/WIX WEPS Bootloader $ light WEPS_Bootloader.wixobj Windows Installer XML Toolset Linker version 3.11.2.4516 Copyright (c) .NET Foundation and contributors. All rights reserved. light.exe : warning LGHT1032 : Unable to reset acls on destination files. 4. wagner@ARSCOFTC4ALWV57 /cygdrive/l/NetBeans_Projects/baseline/Daryn/weps.bootstrap-noWebstart/WIX WEPS Bootloader $ msiexec /i WEPS_Bootloader.msi /l\* C:/Users/wagner/AppData/Roaming/.weps/WEPS_Bootloader/WEPS_Bootloader_install.log From: Wagner, Larry Sent: Sunday, May 2, 2021 7:49 PM To: Daryn Butler Cc: Fox, Fred ; Haas, Mark - ARS Subject: WIX and MSI builds Daryn, I spent an evening looking at WIX and reading some tutorials, etc. I think I have successfully gotten it all to work as desired. I�ll try and explain everything I have done. First, I downloaded the most current recommended WIX version (3.11.2). They appear to have newer versions, but didn�t figure there was anything in the newer releases that we would need. There was probably a reason why the 3.11.2 version was the �recommended� version and not one of the newer versions anyway. Note that I had to enable a specific version of .Net on my machine to fully install this version of WIX. Not sure why it couldn�t use the newer version that was already enabled, but after doing so, following their directions on how to do that, it then fully installed. I don�t think any .Net version is required to install the MSI file on a client machine. At least I hope not. Just wanted to mention that issue, just in case we run into problems related to this issue. Note that I basically followed this example tutorial and fleshed it out with what we needed: https://www.firegiant.com/wix/tutorial/getting-started/the-software-package/ There are basically two commands to run for creating an MSI with this version of WIX, at least for our simple case: � candle WEPS_Bootloader.wxs � light WEPS_Bootloader.wixobj Once the �MSI� file is created, one can use the following command to �install� the WEPS Bootloader (using Cygwin) and create a log file of the installation: � msiexec /i WEPS_Bootloader.msi /l\* WEPS_Bootloader.log If one is using the Windows Command prompt, the �*� doesn�t need to be escaped, e.g., the following command line should work: � msiexec /i WEPS_Bootloader.msi /l* WEPS_Bootloader.log Since I started with an example XML WIX file, I began replacing pieces with our information, files, etc. There were several things I had to figure out how to do, but eventually was able to track down the answers on the internet. The biggest issues were: � Tracking down and downloading a program that would generate the necessary unique UIDs needed for the MSI. I found one (included) and ran it to produce unique ID codes for the Package and Product, group IDs for the Components and an Upgrade ID for the Package, etc. � I had to figure out how to get the icons to display for the menu shortcuts. It wasn�t difficult for the executable program and the entry in the Control Panel�s �Program and Features� listing, but the PDF help file was a different story. I finally obtained a valid Adobe PDF icon and was able to use it for the help file. Note that the example provided a help file, so I kept that functionality. I switched it to use our current WEPS PDF User Guide for now, but I think we will eventually replace it with a very small help file covering the WEPS Bootloader functionality. The WebStart WEPS builds all will contain their own copy of the WEPS User Guide, so we don�t want the Bootloader to automatically install another copy. It will eventually become outdated anyway. � I finally noticed that the MSI was doing a �per user� installation by default, instead of a �per machine� installation. I figured out how to change that as well. Oh, to uninstall the WEPS Bootloader, one can run the following command: � msiexec /x WEPS_Bootloader.msi Or, one can go into the Control Panel�s �Programs and Features� listing and click on the �WebStart WEPS Bootloader� entry to uninstall the WEPS Bootloader. I provided a zipped copy of the folder I used for creating the MSI. However, due to size, I left out the following files: � WEPS_Bootloader.exe � This file is the one that gets installed with your MSI. � WEPS_Bootloader_Manual.pdf � This file was a copy of the WEPS User Guide that I got from a WEPS installation. We will eventually replace this file with a PDF of the WEPS_Bootloader�s User Manual. � WEPS_Bootloader.msi � This is the actual MSI file that can be rebuilt with the �msiexec� command mentioned above Note that I can only get your WEPS_Bootloader.exe to run when I install it via your MSI. It brings up the following popup message, but it doesn�t install WEPS. If I attempt to run it (the WEPS_Bootloader.exe program), it does nothing. Installing it with my MSI, it also does not appear to run at all. We need to get to the bottom of this issue. See if you can duplicate what I have done using the WIX XML file I provided with the commands above. Let me know if it works or not or if you have any questions, etc. LEW Here are my instructions on how to create a ".exe" from the ".jar" file (from the current folder and launch4jc not on the path): > C:\Users\wagner\Program Files (x86)\Launch4j\launch4jc WEPS_Bootloader_launch4j.cfg