Compilando código C# con Windows Forms en Linux
Frecuentes
Visto 6,782 veces
1
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
2 Respuestas
4
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
2
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 c# linux mono gmcs or haz tu propia pregunta.
Si es posible. Funciona igual que el resto.
mcs
y tu estas listo. ¿Por qué preguntar si no lo has probado? - user703016Bueno, el error parece bastante obvio: te faltan referencias de ensamblado. - user703016
Mono no admite aplicaciones WPF. El archivo zip al que se vinculó tampoco se abría. - Security Hound
@Ramhound El archivo zip está bien. La respuesta de la cigarra funciona. - xralf