http://bugs.winehq.org/show_bug.cgi?id=28350
Summary: failure to create MSI packages include merge modules (MSM files) Product: Wine Version: 1.3.28 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: msi AssignedTo: wine-bugs@winehq.org ReportedBy: sam@robots.org.uk
The attached test case fails to compile an MSI using WiX 3.0 under Wine 1.3.28.
The error given is:
wine light -sval pr.wixobj Microsoft (R) Windows Installer Xml Linker version Copyright (C) Microsoft Corporation. All rights reserved.
light.exe : error LGHT0001 : Object reference not set to an instance of an object
Exception Type: System.NullReferenceException
Stack Trace: at Microsoft.Tools.WindowsInstallerXml.MergeMod.NativeMethods.GetMsmMerge () [0x00000] in <filename unknown>:0 at Microsoft.Tools.WindowsInstallerXml.Binder.ProcessMergeModules (Microsoft.Tools.WindowsInstallerXml.Output output, Microsoft.Tools.WindowsInstallerXml.FileRowCollection fileRows) [0x00000] in <filename unknown>:0 at Microsoft.Tools.WindowsInstallerXml.Binder.BindDatabase (Microsoft.Tools.WindowsInstallerXml.Output output, System.String databaseFile) [0x00000] in <filename unknown>:0 at Microsoft.Tools.WindowsInstallerXml.Binder.Bind (Microsoft.Tools.WindowsInstallerXml.Output output, System.String file) [0x00000] in <filename unknown>:0 at Microsoft.Tools.WindowsInstallerXml.Tools.Light.Run (System.String[] args) [0x00000] in <filename unknown>:0
Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object at Microsoft.Tools.WindowsInstallerXml.MergeMod.NativeMethods.GetMsmMerge () [0x00000] in <filename unknown>:0 at Microsoft.Tools.WindowsInstallerXml.Binder.ProcessMergeModules (Microsoft.Tools.WindowsInstallerXml.Output output, Microsoft.Tools.WindowsInstallerXml.FileRowCollection fileRows) [0x00000] in <filename unknown>:0 at Microsoft.Tools.WindowsInstallerXml.Binder.BindDatabase (Microsoft.Tools.WindowsInstallerXml.Output output, System.String databaseFile) [0x00000] in <filename unknown>:0 at Microsoft.Tools.WindowsInstallerXml.Binder.Bind (Microsoft.Tools.WindowsInstallerXml.Output output, System.String file) [0x00000] in <filename unknown>:0 at Microsoft.Tools.WindowsInstallerXml.Tools.Light.Run (System.String[] args) [0x00000] in <filename unknown>:0 Binder temporary directory located at '/tmp/user/1000\11699d64\2ddee0c7'. Validator temporary directory located at '/tmp/user/1000\28b7882d\728284bb'.
http://bugs.winehq.org/show_bug.cgi?id=28350
--- Comment #1 from Sam Morris sam@robots.org.uk 2011-09-12 13:11:02 CDT --- Created an attachment (id=36337) --> (http://bugs.winehq.org/attachment.cgi?id=36337) test case
http://bugs.winehq.org/show_bug.cgi?id=28350
--- Comment #2 from Sam Morris sam@robots.org.uk 2011-09-12 13:12:14 CDT --- Created an attachment (id=36338) --> (http://bugs.winehq.org/attachment.cgi?id=36338) wine output with WINEDBG=+msi
http://bugs.winehq.org/show_bug.cgi?id=28350
Sam Morris sam@robots.org.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|failure to create MSI |failure to create MSI |packages include merge |packages including merge |modules (MSM files) |modules (MSM files) with | |WiX
--- Comment #3 from Sam Morris sam@robots.org.uk 2011-09-12 13:28:00 CDT --- Forgot to mention, I'm using WiX 3.0 as downloaded from http://wix.codeplex.com/releases/view/44406. Running this natively in Windows works fine. Once you've installed Mono from http://download.mono-project.com/archive/2.10.5/windows-installer/0/mono-2.10.5-gtksharp-2.12.11-win32-0.exe and WiX, and put the WiX tools into your PATH, you just have to cd into the directory extracted from the tar and run 'make'.
http://bugs.winehq.org/show_bug.cgi?id=28350
Sam Morris sam@robots.org.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #36338|application/octet-stream |text/plain mime type| |
http://bugs.winehq.org/show_bug.cgi?id=28350
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, testcase CC| |hans@meelstraat.net
http://bugs.winehq.org/show_bug.cgi?id=28350
--- Comment #4 from Hans Leidekker hans@meelstraat.net 2011-09-13 03:20:47 CDT --- (In reply to comment #3)
Forgot to mention, I'm using WiX 3.0 as downloaded from http://wix.codeplex.com/releases/view/44406. Running this natively in Windows works fine. Once you've installed Mono from http://download.mono-project.com/archive/2.10.5/windows-installer/0/mono-2.10.5-gtksharp-2.12.11-win32-0.exe and WiX, and put the WiX tools into your PATH, you just have to cd into the directory extracted from the tar and run 'make'.
I don't see anything suspicious in your msi trace. Do you get the same error with native dotnet?
http://bugs.winehq.org/show_bug.cgi?id=28350
--- Comment #5 from Sam Morris sam@robots.org.uk 2011-09-13 04:40:08 CDT --- Native .NET (on a Windows 7 x86_64 machine, if that matters) works fine.
http://bugs.winehq.org/show_bug.cgi?id=28350
--- Comment #6 from Hans Leidekker hans@meelstraat.net 2011-09-13 04:53:16 CDT --- (In reply to comment #5)
Native .NET (on a Windows 7 x86_64 machine, if that matters) works fine.
I meant Wine, to rule out any bugs from using mono.
http://bugs.winehq.org/show_bug.cgi?id=28350
Sam Morris sam@robots.org.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #36338|0 |1 is obsolete| |
--- Comment #7 from Sam Morris sam@robots.org.uk 2011-09-13 05:40:11 CDT --- Created an attachment (id=36351) --> (http://bugs.winehq.org/attachment.cgi?id=36351) wine output with WINEDEBUG=+msi (dotnet20)
(In reply to comment #6)
I meant Wine, to rule out any bugs from using mono.
OMG, I wish I'd tried that sooner. I didn't realise this was the preferred way to run .NET apps on Wine... when you run a .NET exe without a .NET runtime installed, you get a message telling you to install Mono. :)
Anyway, there is a different problem with native .NET (installed with 'winetricks dotnet20). Here's the output.
http://bugs.winehq.org/show_bug.cgi?id=28350
--- Comment #8 from Sam Morris sam@robots.org.uk 2011-09-13 05:58:33 CDT --- Created an attachment (id=36352) --> (http://bugs.winehq.org/attachment.cgi?id=36352) binder-temporary-directory.tar.gz
Here's the contents of the 'binder temporary directory' mentioned in the output in attachment 36351. The directory name is different because it's from a different run, but with the same inputs and outcome.
At a guess I'd say it's mergemod.dll that is malfunctioning; the file 'merge.log' indicates that it's failing rather early in the job it's performing. The same outcome occurs with both WiX 3.0 and 3.5.
http://bugs.winehq.org/show_bug.cgi?id=28350
--- Comment #9 from Hans Leidekker hans@meelstraat.net 2011-09-13 06:57:30 CDT --- (In reply to comment #7)
Created an attachment (id=36351)
--> (http://bugs.winehq.org/attachment.cgi?id=36351) [details]
wine output with WINEDEBUG=+msi (dotnet20)
(In reply to comment #6)
I meant Wine, to rule out any bugs from using mono.
OMG, I wish I'd tried that sooner. I didn't realise this was the preferred way to run .NET apps on Wine... when you run a .NET exe without a .NET runtime installed, you get a message telling you to install Mono. :)
Mono is the preferred way to run .NET apps on Wine but it may not work as well as native yet. You could try running this on Mono for Windows to see if the bug is in Wine or Mono.
Anyway, there is a different problem with native .NET (installed with 'winetricks dotnet20). Here's the output.
This does look like an msi bug:
trace:msi:MsiViewModify 5 5 7 fixme:msidb:TABLE_modify 0x1be528 5 0x1bf0e8 - mode not implemented
The unimplemented modify mode is MSIMODIFY_MERGE.
http://bugs.winehq.org/show_bug.cgi?id=28350
--- Comment #10 from Hans Leidekker hans@meelstraat.net 2011-09-13 07:01:24 CDT --- (In reply to comment #9)
Mono is the preferred way to run .NET apps on Wine but it may not work as well as native yet. You could try running this on Mono for Windows to see if the bug is in Wine or Mono.
On Windows of course.
http://bugs.winehq.org/show_bug.cgi?id=28350
--- Comment #11 from Sam Morris sam@robots.org.uk 2011-09-13 07:28:18 CDT --- (In reply to comment #9)
Mono is the preferred way to run .NET apps on Wine but it may not work as well as native yet. You could try running this on Mono for Windows to see if the bug is in Wine or Mono.
Understood. I'll try Microsoft .NET before filing such bugs in the future. I've forwarded my original problem to http://bugzilla.xamarin.com/show_bug.cgi?id=772.
http://bugs.winehq.org/show_bug.cgi?id=28350
--- Comment #12 from Sam Morris sam@robots.org.uk 2011-09-14 11:24:25 CDT --- On Windows the behaviour is different ;)
The installer's main screen is presented, and I'm not prompted to install .NET. I think that's because I'm running on Windows 7, which already has it installed. I don't have a machine without it on, I'm afraid. :(
(There's actually a splash screen that appears before the installer's main screen is shown. I didn't notice it before, but it's missing in Wine.)
http://bugs.winehq.org/show_bug.cgi?id=28350
--- Comment #13 from Sam Morris sam@robots.org.uk 2011-09-15 05:04:10 CDT --- (In reply to comment #12)
On Windows the behaviour is different ;)
Ignore that, wrong bug! :(
http://bugs.winehq.org/show_bug.cgi?id=28350
Andoni Morales ylatuya@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |ylatuya@gmail.com
--- Comment #14 from Andoni Morales ylatuya@gmail.com 2012-03-26 06:30:10 CDT --- I'm experimenting the same bug and I haven't managed to fix it.
From what I understand, all files from the merge modules should be properly
merged in the database file File.idt, which is then imported and used used to create the msi package. The problem here is that the the merge module files are not included in this database and therefore when the binder looks for them in the File database it can 't find them. As you can see in the binder temporary directory, the File.idt database only has one entry, which belongs to the file included in the installer but it doesn't include any file from the merge modules.
http://bugs.winehq.org/show_bug.cgi?id=28350
--- Comment #15 from Hans Leidekker hans@meelstraat.net 2012-04-02 07:44:19 CDT --- (In reply to comment #10)
This does look like an msi bug:
trace:msi:MsiViewModify 5 5 7 fixme:msidb:TABLE_modify 0x1be528 5 0x1bf0e8 - mode not implemented
The unimplemented modify mode is MSIMODIFY_MERGE.
MSIMODIFY_MERGE is implemented by 342fcb6198d08c3a6423c1e7f9682a3b6989aa9c.
http://bugs.winehq.org/show_bug.cgi?id=28350
--- Comment #16 from Andoni Morales ylatuya@gmail.com 2012-04-02 08:19:06 CDT --- (In reply to comment #15)
(In reply to comment #10)
This does look like an msi bug:
trace:msi:MsiViewModify 5 5 7 fixme:msidb:TABLE_modify 0x1be528 5 0x1bf0e8 - mode not implemented
The unimplemented modify mode is MSIMODIFY_MERGE.
MSIMODIFY_MERGE is implemented by 342fcb6198d08c3a6423c1e7f9682a3b6989aa9c.
I was hoping it would fix this bug, but creating installer packages with merge modules is still not working. Over the next week I'll try recompiling WiX form sources to debug this issue and try to fix it.
https://bugs.winehq.org/show_bug.cgi?id=28350
--- Comment #17 from Ken Sharp imwellcushtymelike@gmail.com --- Is this still an issue in Wine 1.7.45 or later?
https://bugs.winehq.org/show_bug.cgi?id=28350
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #18 from joaopa jeremielapuree@yahoo.fr --- Does the bug still occur with wine-4.5?
https://bugs.winehq.org/show_bug.cgi?id=28350
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |NEEDINFO Summary|failure to create MSI |WiX Toolset v3.x: failure |packages including merge |to create MSI packages |modules (MSM files) with |including merge modules |WiX |(MSM files) URL| |https://web.archive.org/web | |/20210315120534/https://raw | |.githubusercontent.com/Casa | |DeRobison/wixtoolset-codepl | |ex/master/archived-stable-v | |ersions/WiX%20Toolset%20v3. | |0%20Stable/Wix3.msi CC| |focht@gmx.net