2009-11-05 13 views
6

Estoy intentando implementar una aplicación creada con VS2008 Express. La idea es cargar los archivos en un servidor web (instalación a través del sitio web) y, al mismo tiempo, ofrecer instalaciones sin conexión (CD) a algunos usuarios que no tienen conexión a Internet.La configuración de ClickOnce CD intenta conectarse a Internet

En las opciones de publicación que salió de la Installation Folder URL en blanco, que yo no se la opción The application should check for updates (ya que estoy teniendo cuidado de las actualizaciones de comprobar manualmente) y me llenó en la opción Update location (if different than publish location).

Cuando intento probar la instalación sin conexión, la aplicación no se puede instalar. Me aparece un error "descarga La aplicación no tuvo éxito Compruebe su conexión de red ...." Y al pulsar el botón Detalles, estoy leyendo el siguiente error:

  • Activation of C:\Install\myapp.application resulted in exception. Following failure messages were detected:

Por qué es que, a pesar de todos los archivos están presente, la instalación está tratando de descargar los archivos de Internet?

Finalmente, cuando elimino la URL del servidor del Update location, todo normalmente. ¿Debo crear dos configuraciones diferentes cada vez que necesito actualizar la aplicación? ¿O hay otra solución?


Editar:

Otras pruebas demostraron que la instalación fuera de línea funciona normalmente en Windows XP, pero no funciona en Windows 7. En este último caso, utilizando los mismos archivos de instalación, el instalador intenta descargar la aplicación de Internet, en lugar de usar los archivos .deploy locales.

No hay gurús de ClickOnce disponibles?

Respuesta

5

El corredor de ClickOnce intentará conectarse a la URL especificada, independientemente de si los archivos ya están presentes localmente o no. Necesitará dos configuraciones de compilación para admitir despliegues basados ​​en CD y en la web. Aquí está la información relevante de Microsoft's documentation.

To enable this deployment strategy in Visual Studio, click From a CD-ROM or DVD-ROM on the How Installed page of the Publish Wizard.

To enable this deployment strategy manually, change the deploymentProvider tag in the deployment manifest so that the value is blank. In Visual Studio, this property is exposed as Installation URL on the Publish page of the Project Designer. In Mage.exe, it is Start Location.

Usted puede hacer esto de forma automática, por lo que no es necesario modificar manualmente la configuración del proyecto cada vez (y el riesgo de hacer incluso un pequeño error que impide a sus clientes de la actualización). Desafortunadamente, la configuración de ClickOnce del proyecto no parece estar controlada por configuraciones de compilación estándar, por lo que deberá realizar una edición a mano del archivo de proyecto (que también es un script de MSBuild) o un script de compilación separado en cualquier herramienta que utilizar.

El valor que debe sobrescribir es InstallUrl. Debe estar en blanco para la compilación de instalación del CD-ROM. Su construcción tendrá que construir ambas configuraciones. Hay abundantes ejemplos en este sitio y otros con instrucciones sobre cómo hacer precisamente eso.

2

Tuve un problema que era similar, excepto que estaba publicando una aplicación para un proyecto más reciente en VS2015. Opciones Mi publicar fueron:

  • ¿Cómo los usuarios instalar la aplicación - "A partir de un CD-ROM o DVD-ROM"
  • La aplicación no comprobará si hay actualizaciones

yo publicaría esto desde mi máquina dev (por ejemplo, mymachine01) y la.archivo de aplicación que agrupa junto Setup.exe siempre contendría una línea como esta:

<deploymentProvider codebase="http://mymachine01/Application20Name/Application20Name.application" />

Me zip que hasta entonces soltarlo en otra máquina para probar el instalador y me gustaría obtener un error Application cannot be started. Contact the application vendor.. Hacer clic en el botón de detalles revelaría un error The remote name could not be resolved en el que la aplicación intentaba acceder al mymachine01. Para solucionar esto, he utilizado los siguientes pasos:

  1. proyecto de clic derecho en VS y seleccione propiedades
  2. Ir a la pestaña
  3. Haga clic en "Opciones"
  4. Seleccione "Manifiestos"
  5. de verificación "Publicar Excluir la URL del proveedor de implementación "
Cuestiones relacionadas