Hi,
I am trying to use wixl from GNOME msitools to generate MSI installers for my Windows ported Linux applications.
However, the official tutorial is limited, deprecated, and not working on my machine.
When I run wixl, then it reports a generic error message about null files. It does not say which files are ending up null.
Product.wxs:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product
Id="*"
Name="raygun"
Language="1033"
Version="1.2.3"
Manufacturer="Mars Corp"
UpgradeCode="69F159AD-CE9C-4EE8-A25D-BB4E8A226D73"
>
<Package
InstallerVersion="301"
Description="Space modulator"
SummaryCodepage="1252"
Compressed="yes"
/>
<MediaTemplate EmbedCab="yes" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<Directory Id="TARGETDIR" Name="SourceDir"><Directory Id="ProgramFiles64Folder" Name="PFiles"><Directory Id="INSTALLDIR" Name="raygun"><Component Id="entry0" Guid="58a6d713-5f9a-4d9a-80fa-d1b11b739b84" Win64="yes"><File Source="LICENSE.txt" KeyPath="yes" /></Component><Component Id="entry1" Guid="0d38548d-5ebd-4024-93b7-66ab10dea492" Win64="yes"><File Source="raygun" KeyPath="yes" /></Component><Component Id="entry2" Guid="f4ceb9e3-6f71-4ecc-9fd5-e4eae8811e60" Win64="yes"><File Source="raygun.cmd" KeyPath="yes" /></Component></Directory></Directory></Directory><Feature Id="Complete" Level="1"><ComponentRef Id="entry0" /><ComponentRef Id="entry1" /><ComponentRef Id="entry2" /></Feature>
</Product>
</Wix>
Trace:
# wixl -o raygun.msi --arch x64 Product.wxs
** (wixl:34): CRITICAL **: 21:39:10.136: wixl_msi_table_file_add: assertion 'File != NULL' failed
(wixl:34): GLib-GObject-CRITICAL **: 21:39:10.139: g_object_set_data_full: assertion 'G_IS_OBJECT (object)' failed
** (wixl:34): CRITICAL **: 21:39:10.140: wixl_msi_table_file_add: assertion 'File != NULL' failed
(wixl:34): GLib-GObject-CRITICAL **: 21:39:10.140: g_object_set_data_full: assertion 'G_IS_OBJECT (object)' failed
** (wixl:34): CRITICAL **: 21:39:10.140: wixl_msi_table_file_add: assertion 'File != NULL' failed
(wixl:34): GLib-GObject-CRITICAL **: 21:39:10.140: g_object_set_data_full: assertion 'G_IS_OBJECT (object)' failed
The source media files are in the current directory.
They’re readable by the current user (root).
Tried latest stable msitools from the Fedora 43 dnf repository.
Tried latest msitools commit compiled from source.
Using Docker on macOS Tahoe on Apple Silicon.