Compilando código C# con Windows Forms en Linux

Descargué algunos códigos fuente que contienen código C# que usa formularios de Windows. ¿Es posible compilar los códigos bajo el entorno Linux (Ubuntu 12.04) y ejecutarlo?

Ya intenté con éxito compilar algunos códigos fuente de C# con mcs y ejecutar el resultado exe archivo con mono.

Los códigos fuente se pueden descargar aquí. Si es posible, describa cómo compilaría y ejecutaría capítulo 2/Documento de apertura solución.

$ mcs Program.cs 
Program.cs(3,14): error CS0234: The type or namespace name `Windows' does not exist in the namespace `System'. Are you missing an assembly reference?
Compilation failed: 1 error(s), 0 warnings

EDITAR

$ gmcs -pkg:dotnet Program.cs 
Program.cs(17,33): error CS0246: The type or namespace name `Form1' could not be found. Are you missing a using directive or an assembly reference?
Program.cs(17,25): error CS1502: The best overloaded method match for `System.Windows.Forms.Application.Run(System.Windows.Forms.Form)' has some invalid arguments
/usr/lib/mono/gac/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll (Location of the symbol related to previous error)
Program.cs(17,25): error CS1503: Argument `#1' cannot convert `object' expression to type `System.Windows.Forms.Form'
Compilation failed: 3 error(s), 0 warnings

preguntado el 12 de junio de 12 a las 17:06

Si es posible. Funciona igual que el resto. mcs y tu estas listo. ¿Por qué preguntar si no lo has probado? -

Bueno, el error parece bastante obvio: te faltan referencias de ensamblado. -

Mono no admite aplicaciones WPF. El archivo zip al que se vinculó tampoco se abría. -

@Ramhound El archivo zip está bien. La respuesta de la cigarra funciona. -

2 Respuestas

Si no está utilizando la última versión de Mono, esto debería funcionar:

gmcs -pkg:dotnet *.cs

La última versión de mono utiliza mcs en lugar de gmcs. En las anteriores, mcs apunta a .NET 1.1.

Respondido el 12 de junio de 12 a las 17:06

no estas compilando Form1.cs. Reemplazar Program.cs con *.cs para compilar todo su código C#, de lo contrario, simplemente escriba la lista de archivos para compilar. - user703016

Muchas gracias, recién estoy comenzando con eso, así que prefiero preguntar primero si tiene sentido. - xralf

@ user7236293 ¿Reconoce el compilador Mono todos los archivos necesarios, como el archivo de configuración, Form1.Designer.cs, etc., si utilizo el enfoque que ha mencionado? tecno

Por si acaso: en CentOS 7 enfrenté el mismo problema. Después de la instalación del paquete mono-data-oracle funcionó como se muestra. - hendrik

Es posible que desee ejecutar su código contra el analizador de migración mono para ver qué falla o qué no es compatible. Puedes encontrar la herramienta aquí: http://www.mono-project.com/MoMA. NOTA Para que la herramienta funcione, necesitará acceso a una máquina de Windows.

También puede echar un vistazo a la compatibilidad mono actual con varias características de .Net en http://www.mono-project.com/Compatibility.

Específicamente para formularios de Windows, consulte: http://www.mono-project.com/WinForms

Espero que esto ayude.

Respondido el 12 de junio de 12 a las 17:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.