2011-08-17 20 views
5

¿Alguien puede explicar (mejor que los documentos technet/msdn) qué hace exactamente el proveedor automático, cómo funciona y cuándo usarlo?¿Qué es exactamente el Proveedor automático en Web Deploy (msdeploy.exe)

Esto es en lo que respecta a Web Deploy. He visto mucha documentación especificando -dest: auto y en realidad no tiene sentido para mí.

El proveedor automático especifica que el proveedor en un destino será igual que el proveedor de origen.

Ejemplo

msdeploy.exe -Verb: sync -source: appHostConfig = "MySite" -dest: auto, de equipo = Servidor1

El proveedor de auto le permite evitar entrar en la ruta completa para la -destino argumento cuando el argumento de destino es el mismo que el argumento -source. También elimina la necesidad de copiar el archivo de manifiesto por separado de un archivo o paquete.

El proveedor automático toma la fuente que especifique y utiliza una ubicación correspondiente en la computadora de destino. Por ejemplo, si especifica appHostConfig = Site1 como fuente, el destino en la computadora de destino será Site1. Esto es útil cuando desea sincronizar un sitio web "tal cual" a una máquina remota.

technet docs for auto provider

ejemplo que no tiene sentido:

msdeploy.exe -verb:sync -source:package=myapp.zip -dest:auto 

¿Por qué nunca establecer el destino exactamente a la fuente? ¿Cual es el punto? ¿No estás simplemente ignorando la fuente con iteslf?

El archivo cmd generada generado a partir de la publicación de un paquete en VS2010 genera algo como esto:

"C:\Program Files\IIS\Microsoft Web Deploy V2\\msdeploy.exe" -source:package='MySourcePath' -dest:auto" 

no automático significa que la fuente se acaba de sobrescribir en sí? Pero no es así, realmente actualiza el sitio web de IIS (basado en la configuración del manifiesto)

He intentado usar el paquete como destino y en este caso sí actualicé el paquete fuente y no el sitio IIS .

El catalizador para esta pregunta es que estoy implementando CI y siempre he usado msbuild/xcopy en el pasado. Quiero utilizar msdeploy ahora. Quiero entenderlo en lugar de simplemente llamar al myproject.cmd que se generó desde Visual Studio.

Por ejemplo, this SO link especifica el uso del proveedor automático para el argumento dest.

Gracias

Respuesta

4

creo que realmente haya averiguado la respuesta por sí mismo.

Si la fuente es un paquete y el destino es automático, eso simplemente significa que los componentes especificados dentro de el paquete se "descomprimirá" y se colocará en el servidor de destino. En el -source: package -dest: auto-sintaxis, "auto" hace no significa que el paquete en sí es el destino.

Y, como puede ver, si especifica un paquete como destino, todo lo que especifique para el origen se empaquetará como un archivo comprimido que luego puede usar como fuente para implementar en otro lugar.

+0

2do párrafo - lo clavé. –

+0

Entiendo que la fuente se definirá dentro del sitio, pero por alguna razón que de alguna manera equivale a ignorar los atributos -ignore especificados en el comando. Estoy intentando hacer esto porque quiero que dichos contenidos de directorio virtual estén protegidos por la autenticación de la aplicación principal. He publicado mi pregunta aquí: http://stackoverflow.com/questions/23548022/nested-virtual-directory-deleted-on-msdeploy –