2009-06-26 36 views
11

Tengo una aplicación .NET Winforms (creada en VS2005) que despliego utilizando ClickOnce. En uno de los formularios tengo un control de visor de Crystal Reports para que el usuario vea los informes, pero para usarlo en la aplicación, debo incluir el prereq de Crystal Reports XI Release 2 que instalan antes de instalar la aplicación. Esto básicamente instala una versión diluida de Crystal en la máquina de los usuarios.Implementación de ClickOnce con prerrequisito de Crystal Reports

Funciona publicar de esta manera, pero es una especie de molestia para el usuario tener que esperar a que Crystal se instale y es una gran molestia para mí porque publicar la aplicación con el prereq toma mucho tiempo para terminar porque tiene que cargar el prereq grande hasta el servidor.

Dado que la publicación lleva tanto tiempo y las nuevas instalaciones no son muy comunes, generalmente no incluyo el prerregistro cuando publico los cambios y en su lugar solo lo publico con el prerregistro si se necesita una nueva instalación.

Si ha utilizado ClickOnce para publicar una aplicación con Crystal Reports, es así como lo ha publicado o hay una manera más fácil/mejor.

¿Hay una manera de incluir/GAC que se necesita en lugar de incluir e instalar el Crystal Report prerrequisito o hay una manera de que pueda configurar el despliegue OneClick para no tener que copiar el archivo cada vez que el DLL CR. Si pudiera configurar la implementación de ClickOnce para no tener que incluir el pre-requisito y, en su lugar, apuntar la instalación a una ubicación estándar que ayudaría.

Espero que esto haya sido algo claro y que alguien pueda ayudar. Gracias

+0

Tuve este problema también, pero no encontré una buena solución para ello excepto para incluir un enlace, en las notas de instalación, al CR Redist msi. –

Respuesta

3

Según las respuestas, parece que esto es bastante común, así que solo publicaré lo que hago para solucionar el problema por el momento.

Primero comenzaré que creo que la respuesta de Bronumski debería funcionar, pero no he tenido éxito en el pasado cuando lo probé.

La forma en que soluciono este problema es simplemente publicar los archivos usando ClickOnce en una carpeta localmente y luego convertirlos en archivos manualmente excluyendo el directorio de instalación de crystalreport que se creó.

Sé que esto no es una buena respuesta para esto, pero ya no tengo que implementarlo muy a menudo, por lo que este es mi trabajo al respecto por el momento. Lea todas las otras respuestas para encontrar una que pueda ayudar a resolver su problema.

Espero que ayude. Gracias

0

Conceptualmente, lo estás haciendo lo mismo que hace un rato. Lo único que hice de manera diferente fue implementarlo desde el servidor de compilación en lugar de desde mi máquina. Francamente, no me importaba cuánto tardara en implementarse siempre y cuando no interrumpa mi máquina.

Estaba usando CruiseControl.Net para las compilaciones, así que cuando llegó el momento de implementar la compilación de lanzamiento, simplemente deshabilitaba la compilación CC para ella, comenzaba el proceso de publicación y la revisaba después de un tiempo.

0

Los Módulos de fusión Crystal 11.5 para .Net tienen errores, y eso introduce problemas cuando se implementa mediante ClickOnce.

Eventualmente abandonamos ClickOnce y fuimos a una configuración de autoextracción (Nullsoft Install System), e instalamos Crystal Redist una vez en las PC del cliente.

El cristal es una pesadilla, nunca se puede 'hacer las cosas bien', pero se pueden mitigar los dolores de cabeza.

0

Cuando tuve este problema, creé un instalador independiente para Crystal Reports. Eso tenía sentido para mí porque tenía muchos programas que lo usaban.

Eso acortó las implementaciones de clic una vez, pero los sistemas sin el requisito se bloquearían con una excepción, por lo que cuando migré todo a Visual Studio 2008 y el Crystal Reports más reciente comencé a incluirlos.

Toma más tiempo cada vez que se instalan y actualizan, pero en mi caso no vale la pena administrar el requisito frente a la facilidad de implementación.

0

Lamento tener que admitir que tuve un problema similar y terminé con una solución similarmente arbitraria.

Terminé sentado entre dos taburetes, si el usuario no quería Crystal en su máquina, ofrecí una opción para acceder a un servicio web alojado en un servidor con Crystal, por lo que el trabajo podría hacerse de forma remota. Si tenían Crystal, el trabajo se hizo localmente.

No era perfecto, pero al menos era razonablemente reactivo.

6

Al implementar una aplicación ClickOnce con requisitos previos, puede especificar dónde se descargan los requisitos previos, locales o del proveedor (como Microsoft). Si especifica el proveedor, no incluirá los archivos binarios de requisitos previos en su paquete de implementación.

Si Crystal no ha especificado una ubicación remota, siempre puede hacer su propio requisito previo utilizando el Generador de manifiesto Bootstrapper. A continuación, cargará los archivos binarios de Crystal en una ubicación en su servidor de implementación, creará su requisito previo personalizado utilizando su nuevo repositorio binario como sitio del proveedor, agregará el requisito previo personalizado en su aplicación de clic y lo configurará para descargar desde el sitio del proveedor.

Creo que en VS 2010 tiene una tercera opción para los requisitos previos de ClickOnce donde puede orientar un sitio específico eliminando la necesidad de su requisito previo personalizado.

+0

De alguna manera me perdí esta respuesta hasta ahora. Tal vez hice algo incorrecto, pero intenté especificar el sitio de los vendedores y desde una ubicación específica en el pasado sin resultado. Estoy de acuerdo en que esto debería funcionar, pero no tuve éxito. Ingresé la ubicación en que se instaló la instalación de Crystal Report en el servidor en el cuadro de ubicación específica y no funcionó. Lo renunciaré porque creo que también debería funcionar, pero crearé una respuesta de lo que hago para evitar el problema. Gracias – Dusty

Cuestiones relacionadas