¿Cómo publicas una ClickOnce Build en un CD con MSBuild?

votos
1

¿Alguien sabe cómo crear una publicación ClickOnce para un CD con la tarea de publicación en MSBuild?

VS2008 tiene un 'asistente de publicación' con una opción de botón de opción para publicar en CD. Publica un clic una vez que se instala en una carpeta local que es adecuada para grabar en un CD.

Estamos siguiendo un MSBuild programado con pasos de postprocesamiento en el que lo configuramos e instalamos en un entorno determinado, y nos gustaría tener una forma scriptable de producir un CD de la salida de ClickOnce.

He podido hacer que este proceso funcione para una instalación web y una instalación para compartir archivos, pero parece que el 'asistente de publicación' realiza algún paso oculto que no puedo descubrir.

Me estoy volviendo loca tratando de correlacionar las diversas propiedades en los diálogos de publicación, el asistente de publicación, meta de publicación de msbuild, mage.exe y mageui.exe. Algunos artículos tienen el mismo nombre, algunos difieren entre los diálogos y las propiedades, algunos se pueden establecer en un área, pero no en otra.

Puedo ver que se puede automatizar ClickOnce, pero en general, parece ser una tecnología GUI, y la creación de scripts parece ir en contra de su grano.

Cuenta

Publicado el 09/12/2008 a las 18:31
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
1

Bueno, he respondido mi propia pregunta.

¡Es una cuestión de codificación Http!

Cuando publica una aplicación, termina con una estructura de carpetas como: C: \ myApp \ Application Files \ version 1

Cuando modifica los contenidos de la aplicación publicada (como lo hace cuando desea reemplazar el archivo de configuración), debe resignar la aplicación y los manifiestos de implementación.

Y cuando lo haces, MageUi.exe HttpEncodes la "Ubicación" de la aplicación. Manifiesto.

Así que ahora, el manifiesto de implementación dice que su ruta de archivo local al manifiesto de la aplicación es algo así como: Aplicación% 20Files \ myApp_version \ myApp.exe.manifest

Y como esa ruta no existe, su causa es que la instalación basada en CD realmente se instala desde el servidor http: update, si existe, y falla si no lo hace

Nuestro trabajo es cambiar el nombre de "Archivos de aplicación" a "Archivos de aplicación".

Increíble...

Respondida el 11/12/2008 a las 19:12
fuente por usuario

votos
1

Solo para agregar a esto, parece tener algo que ver con ejecutar MageUi en el resultado del paso de publicación.

Si publico con MSBuild desde la línea de comandos, eso se ve así:

msbuild  C:\myapp.vbproj /target:publish `
/property:PublishDir=c:\ClickOnce\ `
/property:SolutionDir=C:\trunk\myapp\ `
/property:TargetZone=LocalIntranet `
/property:MapFileExtensions=True `
/property:PublisherName='my publisher' `
/property:ProductName='myProduct' `
/property:BootstrapperEnabled=True `
/property:IsWebBootstrapper=False `
/property:GenerateManifests=True `
/property:ApplicationVersion=1.2.3.4 `
/property:Configuration=Debug `
/property:UpdateUrl=http://localhost/ClickOnce/ `
/property:UpdateEnabled=True `
/property:Install=True 

Luego creo una carpeta que se puede instalar desde un CD.

Cuando manipulo el archivo de configuración y agrego resultados adicionales de otro proceso a la carpeta de publicación y luego uso MageUI para regenerar la aplicación y los manifiestos de implementación, creo una instalación basada en archivos que realmente se instala desde updateURL. Si me desconecto de Internet, aparece la excepción 'No se puede conectar con el servidor remoto', así que en lugar de solo buscar actualizaciones, insiste en instalar desde el servidor web también.

Respondida el 10/12/2008 a las 00:41
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more