[wix-devs] Running WiX on Linux using Mono
rob at firegiant.com
Sun Jul 9 12:40:43 PDT 2017
1. "PlatformException" - I'm actually taking a slightly different tact. I'm asking .NET Core how they think this sort of situation should be handled (https://twitter.com/robmen/status/884103480452894720). The WiX Toolset has a history of stressing different parts of DevDiv platforms (started with VBScript back in late-90's) so I can usually get them to at least entertain conversations like this. Let's see where they lead before pushing in one direction or the other.
4. "libmsi" - those are easy things to do. I was a little surprised by the "libmsi" concept since I didn't know what would be mapping from "msi.dll" to "libmsi.so". Mostly looking to be educated. We'll get to the right place.
6. "vacation" - it isn't exactly vacation. It's more "catching up on FireGiant since I spent more time than expected on WiX v3.x and--in the end--VS2017 support".
But yeah, give me a month to catch up. <smile/>
From: Iain Nicol [mailto:git at iainnicol.com]
Sent: Sunday, July 9, 2017 12:13 PM
To: WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>; Rob Mensching <rob at firegiant.com>
Subject: Re: [wix-devs] Running WiX on Linux using Mono
On 9 July, Rob Mensching wrote:
> 1. FileVersionInfo - this is what I was concerned about with .NET Core. The .NET Standard says "vNext" of Mono will support .NET Core 2.0 (https://docs.microsoft.com/en-us/dotnet/standard/net-standard). If that is Mono 5 (just came out) or something reasonably soon, we may be okay. First step, reach out to .NET Core team and ask about that (https://twitter.com/robmen/status/884079880261910528).
> As you note, worst case, we find a way to implement shim. Let's see what sort of answers we get from the .NET Core team.
I'll also see if I can convince the CoreFX people to throw PlatformNotSupportedException on Linux instead of returning dummy Version 0.0.0.0.
> 4. Does Mono do something special to redirect Pinvoke MSI.DLL to "libmsi.so"?
It's easy to PInvoke .so's, both on Mono, and on .NET Core.
We /might/ have to change "msi.dll" to just "msi" in the C# declaration.
And we probably have to be explicit about the calling convention
(stdcall) in the Linux C code, and possibly also the C# code. Then, provided the .so is in the right place, everything should work.
> Finally, to be crystal clear, I'm not working on Linux (which is
> probably more than obvious at this point <smile/>). That means I'll be
> leaning pretty heavily on you (and Iain if he plans to stay involved)
Yup, I'll stay involved. But I'm trying to avoid replying much in the short term. That's because you're repeatedly telling us you're on a mini well deserved break from WiX until August. :)
More information about the wix-devs