Como adoptar un pingüino

BLOG de AZULcasiNEGRO, donde se cuentan básicamente las peripecias durante la migración a Kubuntu/Linux

Aviso Cookies

Categories

Contador

Eres el visitante

Visto el interés de algunos por saber más del tema, os cuento la jugada.

Introducción

Como ya sabreis, se puede hacer correr código c# nativamente con mono, pero sólo ejecuta c#. Es decir, si el código que tenemos llama en algún momento a algo que no sea .NET 100%, mono da un error de ejecución. :-(

Problema

¿ Que problema tenemos el trabajo ? usamos el paquete de controles que, aunque se anunciaban como 100% .NET, en realidad hacen llamadas a la API de windows. :-?
Así que sobre Linux no funcionarán.

Solución

Si Mahoma no va a la montaña, la montaña va a Mahoma.
En vez de intentar ejecutar de forma nativa con mono, lo ejecutamos como windows pero sobre linux con el emulador/traductor Wine.
Hasta hace poco esto no era posible, pero ahora la gente de Wine han conseguido hacer correr Framework 2.0.

Vamos a ver como. Para instalar seguimos los siguientes pasos :

1. Instalamos wine v1.0. La versión de repositorio de Ubuntu/Kubuntu 8.04 ya nos sirve. 2. Descargamos la última versión de winetricks

wget http://www.kegel.com/wine/winetricks

3. Instalamos MS Installer 2.0

sh winetricks msi2

4. Instalamos Framework 2.0 ( OJO, la versión SP1 no funciona )

sh winetricks win2k
sh winetricks corefonts dotnet20
sh winetricks winxp

5. Copiamos los archivos necesarios a Linux. Las dll, exe y el resto de archivos (configuración, imagenes, etc) si los hay.
6. Nos vamos a la carpeta y ejecutamos

wine nuestra_aplicación.exe 

Sencillo, no ?

Conclusión

Si nuestra única limitación era la de llamadas a la API de Windows desde nuestro programa realizado con Framework 2.0, ya podemos correr nuestras aplicaciones sobre linux+wine sin problemas.
No hacen falta máquinas virtuales ni sesiones remotas. Sólo Linux. (El tema de las licencias es otra historia).

Para los que usais bases de datos, os recomiendo usar alguna que funcione bajo linux y tenga controlador para .NET 2.0.
En concreto yo uso Firebird 2.1 para Linux, y no tengo ningún problema.

Espero que este hallazgo os de tantas alegrías como a mí. (O más :-D )

16 comentarios

  1. Xavi M  

    Al instalar el frameworks 2.0, no me deja, ja que me da un error. Necesita windows installer 3

    Que puedo hacer?

  2. AZULcasiNEGRO  

    Hola, Xavi.

    Acabo de instalarlo y me ha salido el mismo error error.

    Investigaré un poco el tema, a ver si hay alguna solución.

    Creo que lo mejor sería informar tambien a la gente de wine.

    Un saludo

  3. Anónimo  

    Hola yo lo solucione configurando el wine como Windows 2000. Después se instalo sin ningún problema el donet2.0.

  4. AZULcasiNEGRO  

    Gracias por tu autorespuesta :)

    Tambien funciona poniendolo como Windows 98.

    Igualmente actualizaré la receta.

  5. Xavi M  

    Pues a mi sigue sin funcionarme.

    Incluso he intentado instalarme adicionalment el msi3, pero no me deja el wine

    He seguido los comandos que indicais, incluso he utilizado sh winetricks win98. Pero no me sigue saliendo el mismo mensaje cuando le doy a instalar el dotnet20

  6. AZULcasiNEGRO  

    Xavi, intenta esto.

    Renombra la carpeta .wine de tu home, vuelve a instalar wine y acto seguido los pasos para dotnet20.

    Yo al final acabo teniendo varias carpetas .wine para hacer cosillas.

    Otra opción sería que te instalaras PlayOnLinux. A parte de juegos, deja instalar cosas como IE6 y dotnet20.

  7. Unknown  

    Se agradece el aporte
    saludos y gracias

  8. Unknown  

    Perdón por mi ignorancia, pero en el paso 5 ¿dónde están los archivos en cuestión y dónde se copian?

    Muchas gracias. Saludos!

  9. AZULcasiNEGRO  

    Hola, Gorka

    El paso 5 se refiere a los archivos de tu programa. A tu exe, el de tu programa, y si tienes tambien las dll. Si no quieres complicarte la vida mete las dll en la misma carpeta del exe y asi no hay que registrar nada.

    Y tu pregunta que nadie nace aprendido.

  10. Emilio  

    No es necesario instalar msi2 :)

  11. Anónimo  

    Se puede instalar WINDOWS INSTALLER 3.0 del siguiente enlace:

    http://pt.kioskea.net/telecharger/telechargement-14-windows-installer

    y después instalar dotnet2.0.


    Un saludo

  12. Anónimo  

    Muchas gracias por el aporte. Gente como tu nos hace la convivencia con Linux aun mas grande. Me ha funcionado perfectamente siguiendo tus pasos.

    Un saludo.

  13. Aleh Agüed  
    Este comentario ha sido eliminado por el autor.
  14. Unknown  

    ¿Alguien ha probado a instalar Mono (ultima version: 2.10) sobre Wine (última versión 1.5.4) y ver si da buenos resultados?

    Yo tengo esa combinación... pero tengo la desgracia de no poder hacer la prueba porque ahora no caigo en la cuenta de ningún programa hecho en .net que pueda probar.

  15. Unknown  

    ¿Alguien ha probado la combinación Mono (última versión: 2.10) + Wine (última versión 1.5.4) para ver si da buenos resultados?

    Yo tengo esta instalación montada, pero desgraciadamente no me viene a la cabeza ningún software con el que probarlo.

  16. AZULcasiNEGRO  

    Creo recordar que el propio Mono tenia aplicaciones de ejemplo. Podrías probar alguna de esas y luego comentas que tal

Publicar un comentario

Cuenta atrás

Nuestros derechos

Recent Posts

Recent Comments