Yes, if you have a version of a product developed as a .NET assembly, your problem is solved. As using of Windows DLLs is nearly 100% hopeless, consider this is your own chance.
CLI/CLR is fully implemented by Mono, which can be used on all versions of Linux, as well as other systems. As the code is compiled to some byte code (SIL, a.k.a. MSIL) and finally compiled to CPU instructions only during run time, you can use .NET assemblies under Mono
without recompilation. You can even do development on Linux.
Please see:
http://en.wikipedia.org/wiki/Mono_%28software%29[
^],
http://www.mono-project.com/Main_Page[
^];
see also:
http://en.wikipedia.org
/wiki/Common_Language_Infrastructure[
^],
http://en.wikipedia.org/wiki/Common_Language_Runtime[
^],
http://en.wikipedia.org/wiki/JIT_compiler[
^],
http://en.wikipedia.org/wiki/Standard_Interchange_Language[
^].
You can develop on Windows for .NET or on Linux.
For Windows, it could be Visual Studio or open-source MonoDevelop:
http://en.wikipedia.org/wiki/MonoDevelop[
^],
http://monodevelop.com/[
^].
For Linux, primary IDE is SharpDevelop:
http://en.wikipedia.org/wiki/SharpDevelop[
^],
http://www.icsharpcode.net/OpenSource/SD/Default.aspx[
^].
However, modern versions of both SharpDevelop and MonoDevelop are multiplatform.
—SA