remarks net cref c# .net .net-4.0 mono

net - remarks c#



EjecuciĆ³n de la aplicaciĆ³n.NET 4 con Mono (4)

El paquete mono-completo actual (incluso en Ubuntu Natty) usa mono 2.6.7 que no es compatible con .NET 4.0 API. Tendrás que crear la versión más nueva de mono, que es la mejor manera de tener la oportunidad de usar 4.0 API. El soporte " completo " de .NET 4.0 está planeado en mono 3.0.

Estoy intentando ejecutar un .NET exe en una máquina Ubuntu (instalé el paquete mono-complete ), hasta ahora sin suerte. La aplicación se compila con Visual C # Express 2010 en .NET 4 (Perfil de cliente).

Intento ejecutar el programa con el siguiente comando:

mono application.exe

Sin embargo, me sale el siguiente error:

ADVERTENCIA: la versión de tiempo de ejecución admitida por esta aplicación no está disponible. Uso del tiempo de ejecución predeterminado: v1.1.4322

** (application.exe: 5586): ADVERTENCIA **: Método que falta System.Windows.Forms.Application :: SetCompatibleTextRenderingDefault (bool) en el ensamblado /usr/lib/mono/gac/System.Windows.Forms/1.0.5000.0__b77a5c561934e089 /System.Windows.Forms.dll, al que se hace referencia en assembly /media/disk/application.exe

Excepción no controlada: System.MissingMethodException: Método no encontrado: ''System.Windows.Forms.Application.SetCompatibleTextRenderingDefault''.

Se supone que usa .NET 4, no 1, pero no sé cómo configurarlo. Lo intenté

mono --runtime=4.0.30319.1 application.exe

Pero eso tampoco funcionó.

Cualquier ayuda sería apreciada.


Parece que estás experimentando este error:

Mi documento no tiene nodos: .net 4 Client Profile en Mono 2.8

Eso es asumiendo que instaló> Mono 2.8 (que fue la primera versión compatible con .NET 4.0). De lo contrario, debe instalar un paquete Mono más reciente.

Otra cosa a tener en cuenta es que Mono no es compatible con la totalidad de WinForms. A menos que haya desarrollado su aplicación con Mono en mente, hay una gran posibilidad de que descubra que algo que utilizó no es compatible.


Sospecho que la excepción se debe a que el método System.Windows.Forms.Application.SetCompatibleTextRenderingDefault no se ha implementado. ¿Ha ejecutado la herramienta a través del Mono Migration Analyzer (MoMA) , debería ayudarlo a saber si su aplicación es compatible con mono. A partir de ese punto, posiblemente pueda solucionar el problema, incluso incorporando el método que falta en su código.


Instale Monodevelop y simplemente haga clic derecho en el example.csprj que es un proyecto C # .NET en Linux y haga clic en Monodesarrollo.