sábado, 6 de diciembre de 2014

Visual Studio: Despliegue de aplicaciones, dos errores frecuentes.

NO SE ENCUENTRA EL ARCHIVO O EL NOMBRE DEL ENSAMBLADO.


Estoy desarrollando una aplicación en .NET con Visual Studio 2005, cuando la ejecutamos en modo desarrollo  funciona perfectamente, así que generamos el correspondiente  paquete de instalación creando un archivo .msi y lo llevamos a otra máquina. Instalamos nuestra aplicación y cuando la ejecutamos nos encontramos con este desagradable error.

El error dice: No se encuentra el archivo o el nombre del ensamblado “nombre” o una de sus  dependencias.

No se encuentra el archivo o el nombre del ensamblado.


Si nos pasa esto, es un síntoma de que el instalador no  contiene todo lo necesario para instalar nuestra aplicación, pues en nuestro equipo de desarrollo funcionaba perfectamente.
Por tanto lo primero que hay que hacer es asegurarse de que nuestro paquete .msi contiene efectivamente todos los ensamblados y dll´s necesarias para su funcionamiento.

Hay algunos archivos como este caso concreto las referencias de Crystal Reports  así como otras que se incluyen en la GAC, que tienen la particularidad de que cuando agregas la referencia, no se agregan con la propiedad Copy Local en true, lo que hace que cuando compilamos o desplegamos en el directorio .bin no se encuentren estas dll´s.
Por tanto una primera solución consistirá en establecer la propiedad Copy Local a true de una referencia.

La propiedad Copy Local determina si se copia la referencia en la ruta de acceso de la bandeja local. En tiempo de ejecución deberá existir una referencia en la GAC. Al establecer  esta propiedad a true, se copia la referencia a la ruta de acceso de resultados del proyecto en tiempo de ejecución.

Esto hay que hacerlo desde el equipo de desarrollo en el Visual Studio, una vez hecho deberemos generar de nuevo nuestro archivo .msi
A continuación se explican los pasos en Visual Studio 2005 con otras versiones es similar aunque no exactamente igual.

Para establecer la propiedad Copy Local en true hay que:
1.         En el Explorador de soluciones, hacemos doble clic en el nodo Mi proyecto del proyecto.

Nodo Mi Proyecto

2.         En el Diseñador de proyectos, seleccionamos  la ficha Referencias.

referencias ASP

3.         Seleccionamos el componente de la referencia de la lista Referencias.
Las propiedades asociadas a esa referencia aparecerán en la lista en la ventana Propiedades.

Copia Local

4.         Seleccionamos Copy Local en la columna izquierda y, a continuación, hacemos clic en la flecha en la columna derecha para cambiar el valor a True.
Hecho esto el programa debería funcionar ya, pero en mi caso particular siguió igual.

CAMBIAR LA VERSIÓN DEL FRAMEWORK DE IIS.


Esto fue así por otro error bastante frecuente al desplegar aplicaciones .NET, la versión del framework en el Internet Information Services (IIS) no era la misma en la máquina en la que lo desarrollé que en la máquina en la que intentaba desplegarlo.
El framework adecuado. Para Visual Studio 2005 es el framework 2.0  (3.5 para VS 2008 y 4.0 para VS2010)

Para cambiar en Framework del IIS, abrimos el IIS desde su icono.

icono del IIS

O invocamos el comando inetmgr desde el cuadro de diálogo ejecutar de Windows.

abrir IIS por comando

Una vez abierto el ISS nos colocamos sobre el directorio virtual de nuestra aplicación y pulsamos el botón derecho del ratón, eligiendo la opción propiedades.
Elegimos la pestaña ASP.NET

cambiar la versión del framework en ASP.NET


En el Combo de ASP.NET versión desplegamos y elegimos la versión correspondiente.

ver la versión del framework en ASP.NET

Este último paso también deberemos repetirlo posicionados sobre el directorio Default WebSite.
Ahora ya debería funcionar nuestra aplicación en el equipo donde hemos hecho esto.

No hay comentarios:

Publicar un comentario