[wix-devs] Running WiX on Linux using Mono

Simon Tatham anakin at pobox.com
Sun Jul 9 13:48:30 PDT 2017

Rob Mensching <rob at firegiant.com> wrote:
> 4. "msi.dll" (from your follow up email) - Correct, we pinvoke to MSI.
> Does Mono do something special to redirect Pinvoke MSI.DLL to
> "libmsi.so"?

As far as I could see, Mono did nothing different between WiX's use of
its own winterop.dll and of Windows's msi.dll, which is how I managed to
be mistaken about whether msi.dll was part of WiX or not. In both cases,
I found that Mono simply reinterpreted an attempt to load and use
"foo.dll" by instead looking for "libfoo.so" on a path of directories
starting with the one containing light.exe. So I provided each of the
libraries it asked for, and filled in the functions it was failing to
find until I got something working.

So if you're happy with moving the use of msi.dll functions over to the
winterop.exe side of things, then I can just put my existing replacement
msibuild-invocation code in the Linux version of that executable and
it's all good.

> 5. repo on wixtoolset - okay, let's pencil this in. It'll be a couple
> months (end of August, I expect) before we get to this point of adding
> specific Linux code. So, there is time to get answers to the above
> questions.

This sounds as if it's also time for me to get round to going through
the CLA process, which I'm guessing will be required if I'm going to be
putting code into a repo on wixtoolset?

> That means I'll be leaning pretty heavily on you (and Iain if he plans
> to stay involved) to run down things that get broken on Linux. I
> promise I won't purposefully be breaking things. It'll all be
> ignorance and a lot of it in the beginning.

Conversely, I'm not sure how much I'll need to get involved with the C#
side of things in this plan, but if I do then I'm sure I can provide
some ignorance of my own in return :-)


import hashlib; print (lambda p,q,g,y,r,s,m: m if (lambda w:(pow(g,int(hashlib.
 sha1(m).hexdigest(),16)*w%q,p)*pow(y,r*w%q,p)%p)%q)(pow(s,q-2,q))==r else "!"
 )(0xb80b5dacabab6145, 0xf70027d345023, 0x7643bc4018957897, 0x11c2e5d9951130c9,
 0xa54d9cbe4e8ab, 0x746c50eaa1910, "Simon Tatham <anakin at pobox.com>")

More information about the wix-devs mailing list