2010-07-23 15 views
28

Estoy usando el corredor de MSBuild en Team City para construir e implementar mi proyecto en un entorno de ensayo. Todo funciona perfectamente, excepto por el hecho de que sigue eliminando mi carpeta de repositorio ubicada en la raíz del proyecto.¿Cómo evito que MSDeploy elimine carpetas adicionales en mi proyecto?

En Visual Studio 2010 no es una casilla de verificación en el diálogo de perfil de publicación que dice "dejar archivos adicionales en destino (no elimine)"

¿Hay una manera de lograr lo mismo con MSBuild?

<Target Name="Deploy" DependsOnTargets="Build;Test"> 
     <MSBuild Projects="MyProject.sln" Properties="Configuration=$(Configuration); username=username; password=password; DeployOnBuild=True; DeployTarget=MSDeployPublish; MSDeployPublishMethod=WMSVC; MSDeployServiceUrl=https://DEVWEB01:8172/MsDeploy.axd; DeployIISAppPath=MyProject.$(Configuration); AllowUntrustedCertificate=True;"/> 
</Target> 

Respuesta

49

¡Encontrado la respuesta!

Todo lo que necesita hacer es añadir la siguiente propiedad al atributo Propiedades:

SkipExtraFilesOnServer = true;

+4

Yikes Acabo de pasar más de un día tratando de averiguar cómo hacer que esto funcione -enableRule: DoNotDeleteRule (un parámetro que puedo pasar a MSDEPLOY.exe) pero TFS no lo tendría. Simplemente agregué/p: SkipExtraFilesOnServer = ¡Es fiel a MSBuildArguments en la definición de compilación de TFS, y funcionó! Muchas gracias :-) – Philippe

+0

¡Me alegro de que haya sido útil! –

+0

¿Sabe si este parámetro de configuración también se puede establecer mediante variables de entorno? En teamcity, actualmente uso variables de entorno para cosas como Configuración y ruta de implementación ... parece que están escritas en SetParameters.xml, pero no sé por qué ni cuándo ... – diegohb

Cuestiones relacionadas