2010-07-23 14 views
28

Sto utilizzando il corridore MSBuild in Team city per creare e distribuire il mio progetto in un ambiente di staging. Tutto funziona perfettamente, tranne per il fatto che continua a rimuovere la mia cartella di repository situata nella radice del progetto.Come mantenere MSDeploy dall'eliminazione di altre cartelle nel mio progetto?

In Visual Studio 2010 v'è una casella di controllo nella finestra di profilo di pubblicazione che dice "Lascia file extra dalla destinazione (non eliminare)"

C'è un modo per ottenere la stessa cosa 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> 

risposta

49

Trovato la risposta!

Tutto quello che dovete fare è aggiungere la seguente proprietà all'attributo Proprietà:

SkipExtraFilesOnServer = True;

+4

Yikes Ho appena trascorso più di un giorno cercando di capire come farlo funzionare usando -enableRule: DoNotDeleteRule (un parametro che posso passare a MSDEPLOY.exe) ma TFS non lo avrebbe. Ho semplicemente aggiunto/p: SkipExtraFilesOnServer = Vero a MSBuildArguments nella definizione di build TFS, e ha funzionato! Grazie mille :-) – Philippe

+0

Felice di averlo aiutato! –

+0

Sapete se questo parametro di configurazione può essere impostato anche da variabili di ambiente? In teamcity, attualmente uso variabili d'ambiente per cose come configurazione e percorso di distribuzione .. queste sembrano essere scritte nel SetParameters.xml ma non so perché o quando .. – diegohb

Problemi correlati