Especialista en Programacion .Net C#, PHP, Delphi, amante de Firebird y FreeBSD.
martes, 18 de marzo de 2008
Mono - HTTP 500. System.DllNotFoundException: gdiplus.dll
Intentando de correr una aplicacion en Mono+FreeBSD obtuve el siguiente mensaje de error:
HTTP 500. System.DllNotFoundException: gdiplus.dll
Y en otras paginas tambien obtuve este error:
Parser Error: Color Red is not a valid color
Ambos errores son relacionados y se resuelven con la misma medicina.
Ahora bien, detallemos que sucede, el primer error me habla que me falta una dll llamada gdiplus.dll, pero que es esto ?
Microsoft GDI+ (gdiplus.dll) es una librería que contiene funciones básicas relacionadas con el sistema de interfaz gráfico de Windows (GDI) Graphical Device Interface. Gracias a este sistema Windows puede crear y mostrar objetos en 2D.
Si nuestra aplicacion web esta usando librerias de manejo de imagenes, para manipular su
tamaño, preservar la calidad al momento de desplegarla utilizando otras dimensiones, etc.
Nuestra aplicacion esta haciendo un llamado a esta libreria. En mi caso, mi proyecto .net
hace algunas de estas cosas
En FreeBSD esta libreria no viene con la instalacion de Mono, tenia que instalarla primero antes
mapiar la DLL. La libreria esta ubicada en /usr/ports/X11/x11-toolkit/libgdiplus
procedemos a instalar
make install clean
Pero me encontre con una sorpresa, existia un conflicto de instalacion
/usr/X11R6 exists, but it is not a symlink. Installation cannot proceed.
This looks like an incompletely removed old version of X. In the current version, /usr/X11R6 must be a symlink if it exists at all.Please read /usr/ports/UPDATING (entry of 20070519) for the procedure to upgrade X.org related ports.
*** Error code 1
Al parecer, segun el mensaje de error, nos manda actualizar las X, pero al ver las dependencias del paquete libgdiplus dice que la version de X es la misma que tengo instalada, ademas me parecio problematico actualizar las X ya que otros paquetes dependian de esta misma version y adicional a esto el mensaje de error da una pista de como resolver el problema sin tener que actualizar: /usr/X11r6 debe ser un enlace de sistema, no un directorio real.
Solucion: mover todo el contenido de /usr/X11R6 a /usr/local
cd /usr/X11r6
find -d . -print | cpio -pvdam /usr/local
Entonces borrar X11r6 y crearlo como un enlace de sistema apuntando a /usr/local
rm -r /usr/X11R6 && ln -s /usr/local /usr/X11R6
luego de esto, por fin instalar la libreria sin mas inconveniente
cd /usr/ports/X11/x11-toolkit/libgdiplus && make install clean
Suscribirse a:
Enviar comentarios (Atom)
1 comentario:
voy a ver si funciona. Eres mi esperanza
Publicar un comentario