Una vez que se ha compilado la aplicación bajo un sistema operativo Windows, se obtiene un archivo .exe o un .dll, el cual corre correctamente bajo el mismo SO si el .NET Framework está instalado. Si se intenta correr ese programa bajo Linux se obtiene un mensaje de error:
[/home/link/Desktop/SL File2Array.exe]
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
zipinfo: cannot find zipfile directory in one of /home/link/Desktop/SL File2Array.exe or
/home/link/Desktop/SL File2Array.exe.zip, and cannot find /home/link/Desktop/SL File2Array.exe.ZIP, period.
Para que corra hay que instalar Mono, o instalar una distribución de Linux que traiga integrado Mono. Esta distribución se puede descargar gratuitamente desde la página oficial de Mono. En mi caso descargué el Live CD que pesa como 660MB.
Nota: los usuarios de Ubuntu pueden instalar Mono desde una terminal tecleando lo siguiente...
sudo apt-get install mono-complete
Una vez que has arrancado tu PC con el Live CD, basta que instales el SO a tu disco duro. Da doble click en el icono Live Installer, el password a usar es mono. Sigue los pasos en pantalla y al reiniciar tu PC tendrás Linux instalado.
NOTA: Si no sabes cómo instalar un SO podrías perder todos los datos de tu disco duro. Claro, si eres un programador .NET, seguro que esta advertencia está de sobra.
Una vez que hayas reiniciado tu PC bastará con que copies cualquier .exe o .dll que hayas compilado con el .NET Framework. Dale click derecho y elige la opción Abrir con Mono (o abrir con otra aplicación...). No hace falta recompilar tu código fuente, el compilador Just-In-Time de Mono se encarga de ello.
Si tu aplicación cumple con los requerimientos mínimos de Mono, funcionará automáticamente.
Compilé SL Q15 Tool con Visual C# 2010 Express Edition, usa el .NET Framework 4.0. Corre nativamente bajo Windows XP, Vista y 7. El mismo archivo .exe que corre en Windows, corre bajo linux con un bug, si coloco un número con 4 letras hexa, no se hace bien la conversión. Esto no sucede bajo Windows.
Compilé SL File2Array usando VC# 2008, con el .NET Framework 3.5 SP1. Corre en Windows y en Linux sin mayor problema.
Otro ejemplo, un cálculo que hice con integración por trapecios y su grafica. Fotos de la versión corriendo en Linux y en Win7.
Así que si eres un experto con el .NET Framework y de repente te dicen que tu software debe correr en Linux... no pienses en Java, mejor haz la prueba con Mono y te evitas hacer la migración. Espero que este mini tutorial te haya servido para probar tus ensamblados .NET bajo Linux.