2010-04-15 14 views
16

Actualmente estoy ejecutando Visual Studio Team System 2010 RC y estoy tratando de obtener la instalación del servicio de compilación para compilar mi solución y desplegar 3 aplicaciones web en ella . Creé una configuración de compilación personalizada llamada Integración y configuré el "nombre del sitio web/aplicación de IIS para usar en el servidor de destino" en la pestaña Paquete/Publicación de las Propiedades para cada una de las aplicaciones web.MSDeploy no se implementa en el servidor remoto utilizando MSBuild y Visual Studio 2010

En mi definición de build que he establecido los siguientes argumentos:

/p: DeployOnBuild = Verdadero/p: DeployTarget = MSDeployPublish/p: MSDeployPublishMethod = InProc/p: MsDeployServiceUrl = http://my-server-name:8172/msdeploy.axd/p: EnablePackageProcessLoggingAndAssert = True

Sin embargo, cuando corro la acumulación me sale el siguiente error, para todas las aplicaciones tres web:

Actualizando setAcl (MyProjectName).

C: \ Archivos de programa \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web \ Microsoft.Web.Publishing.targets (3481,5): error: Falló la tarea de despliegue web. (Intento de realizar una operación no autorizada)

No creo que este sea mi problema real. Este error se produce después de la siguiente entrada en el registro: Actualización de setAcl Esto es lo que está causando el mensaje de error, pero parece que MSDeploy está intentando implementar en el IIS local en el servidor de compilación, no en el servidor que especifiqué con el parámetro MsDeployServiceUrl .

Después de mirar el archivo de objetivos en C: \ Archivos de programa \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web \ Microsoft.Web.Publishing.targets, agregué el EnablePackageProcessLoggingAndAssert, que agrega un registro extra. El registro muestra una cadena emptry para el valor de MsDeployServiceUrl. También noté en el objetivo que MsDeployServiceUrl tiene una s minúscula, lo que es algo confuso porque el nombre de la tarea MSDeployPublish tiene una S. en mayúscula. Intenté usarlo en mayúsculas, luego otra vez en minúsculas, pero ninguna de las dos funcionó.

Un par de cosas a tener en cuenta:

  1. Mi servicio de construcción se está ejecutando como servicio de red.
  2. El servidor en el que estoy tratando de implementar está en otro dominio .
  3. También traté de agregar /p: username = mydomain \ myusername /p: password = mypassword a la lista de parámetros de MSBuild, pero no sirvió de nada.

¿Alguien sabe si estoy proporcionando los parámetros correctos? ¿O darme los correctos?

Gracias

Respuesta

25

Después de muchas rondas para cambiar los parámetros, pude encontrar una solución y lograr que la compilación se implementara correctamente. Los parámetros que acabamos utilizando fueron:

/p:DeployOnBuild=True 
/p:DeployTarget=MSDeployPublish 
/p:MSDeployPublishMethod=**RemoteAgent** 
/p:MsDeployServiceUrl=http://my-server-name 
/p:username=myusername 
/p:password=mypassword 

Parece que cuando se utiliza para la InProcMSDeployPublishMethodMSBuild ignora MsDeployServiceUrl y siempre intenta desplegar en el servidor local. Lo cambié a RemoteAgent y se implementó correctamente. Me di cuenta de que el archivo del paquete ya no está en la carpeta MyWebApplication_Package, pero eso no es un gran problema para mí.

+2

¿Tiene una referencia donde encontró esta información? La documentación para esto es muy escasa. – felickz

+0

intente utilizar/p: MSDeployPublishMethod = WMSVC –

+0

¿Qué pasa con esos asteriscos en ** RemoteAgent **? –

0

VS2010 Teniendo en cuenta es RTM'd, usted podría considerar simplemente actualizar y ver si el problema desaparece.

+0

Me gustaría actualizar al VS 2010 RTM, pero estamos en el medio de un proyecto y esperamos esperar hasta que se complete el desarrollo para realizar la actualización. Si se trata de un error en el RC, es posible que tengamos que actualizarlo antes, pero me gustaría verificar primero que estoy usando los parámetros correctos. –

0

Para la compilación que Team Build ejecuta ¿qué archivo especificó? Si se trataba de un archivo de solución, el solo hecho de pasar esas propiedades no significa que se propaguen a cada archivo de proyecto cuando se compile. Cuando crea archivos de solución, solo se transfiere un conjunto limitado de propiedades a los proyectos que se están creando.Si este es el caso, debe crear un archivo .proj que esencialmente reemplazará su archivo de solución y pasará estas propiedades.

Hace poco blogé sobre how to Replace your solution file with an MSBuild file.

Avísame si esto no se aplica a ti o no te sirve.

FYI puede que también le interese este otro hilo en MSDeploy, pero no es el mismo problema que tiene aquí. How can I get TFS2010 to run MSDEPLOY for me through MSBUILD?.

+0

Estoy usando un archivo de solución, pero ese no parece ser el problema. El solo hecho de cambiar MSDeployPublishMethod a RemoteAgent solucionó el problema. –

+0

OK, me alegra oír que tienes ese cuadrado. –

Cuestiones relacionadas