samedi 28 février 2015

Windows APIs - Prohibited by License for Use With Mono?

Long time lurker, first time question-asker.


I have a problem where I need to be able to decompile DLLs built to run on Windows...but I need to do it on Linux...inside a non-interactive, automated tool. I've solved this dilemma by grabbing the ILSpy source code, tearing off the GUI, hammering the ILSpy EXE into a DLL, writing a CLI for it, building and running it under Mono. It works great, but there are licensing questions.


I asked our resident licensing authority "Is this an acceptable use of the MIT-licensed ILSpy, for our purposes?" The core of his answer was


The MIT license is no problem. But there can be problems running .NET apps using Mono. If they require any Windows DLLs, you probably can’t do it, since most Windows DLLs explicitly say that they can only be run on Windows operating systems. We had to [go to great lengths to] avoid trying to use Windows APIs [on another project] when it was running under Mono.


Then he left the company. Sweet. Does anyone know whether the "standard" .NET DLLs (System, System.Core, etc.) are really restricted to Windows platforms? If so, how is it possible to write any non-trivial .NET app for Mono? The solution has to be rebuilt with Mono to run on Mono - does that process link to Mono DLLs in lieu of MS DLLs?


I've looked here and on the Interwebulator for the answer, but all I've found is questions/answers about Mono licensing. I appreciate anyone's insight on the topic.


Aucun commentaire:

Enregistrer un commentaire