2014-04-16 13 views
15

Attualmente utilizzo il conduttore MSBuild in TeamCity per l'integrazione continua sul mio server locale e questo funziona molto bene. Tuttavia, ho difficoltà a trovare un elenco completo degli switch della riga di comando supportati per MSDeploy nel formato che TeamCity si aspetta.Elenco completo di/MSDeploy argomenti per MSBuild da TeamCity

Nella mia sezione 'Parametri' in questo momento ho utilizzando i seguenti parametri:

/P:Configuration=OnCommit 
    /P:DeployOnBuild=True 
    /P:DeployTarget=MSDeployPublish 
    /P:MsDeployServiceUrl=https://CIServer:8172/MsDeploy.axd 
    /P:AllowUntrustedCertificate=True 
    /P:MSDeployPublishMethod=WMSvc 
    /P:CreatePackageOnPublish=True 
    /P:UserName=Kaine 
    /P:Password=********** 
    /P:DeployIISAppPath="OnCommit/MySite" 
    /P:SkipExtraFilesOnServer=True 
    /P:DeployAsIisApp=True 

Tutti questi sembrano funzionare bene e la MSDeploy funziona come previsto.

Il problema si presenta quando desidero aggiungere ulteriori parametri.

Ho guardato i parametri di MSBuild e la documentazione MSDeploy e mi sembra solo per scoprire i parametri della riga di comando come questi:

msbuild SlnFolders.sln /t:NotInSolutionfolder:Rebuild;NewFolder\InSolutionFolder:Clean 

http://msdn.microsoft.com/en-us/library/ms164311.aspx

Sembra che questi riferimenti per argomenti della riga di comando di don' t corrispondono al formato/P: - ad esempio, CreatePackageOnPublish e DeployIISAppPath non sono riconosciuti parametri della riga di comando, ma funzionano bene nel processo di creazione di TeamCity.

Dove posso trovare un elenco completo documentato di argomenti MSDeploy nel formato

/P: Param = Valore

Ulteriori informazioni:

C'è un elenco di parametri qui:

http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.build.workflow.activities.msbuild_properties.aspx

Tuttavia questo non è un completo t - ad esempio, questo elenco non include DeployAsIisApp o SkipExtraFilesOnServer, che sono entrambi parametri che funzionano da Team City Build.

Anche questa domanda correlata (possibilmente duplicata): Valid Parameters for MSDeploy via MSBuild contiene alcuni argomenti, ma non è ancora un elenco definitivo.

risposta

7

In primo luogo, la risposta breve è che non è possibile trovare l'elenco completo. MSBuild non ha un elenco completo di parametri che puoi scegliere poiché puoi inviare qualsiasi parametro che ti piace. È un mezzo di comunicazione tra il chiamante di MSBuild e l'autore dello script di build di MSBuild (un file vs sln o csproj per esempio).

Se lo script di build utilizza il parametro utilizzato, diversamente viene ignorato.

Quindi questa è una chiamata valida per msbuild:

msbuild /p:<anything>=<anything> 

In secondo luogo, non si deve inviare i parametri di MSBuild da TeamCity utilizzando i/p: opzioni di comando. Invece, imposta le proprietà di configurazione o di sistema nella configurazione di build di teamcity. Saranno passati automaticamente a msbuild come parametri.

3

Ecco i parametri utilizzati da Visual Studio Team Services durante la creazione di un ASP.NET (Anteprima) definizione di compilazione:

/p:DeployOnBuild=true 
/p:WebPublishMethod=Package 
/p:PackageAsSingleFile=true 
/p:SkipInvalidConfigurations=true 
/p:PackageLocation="$(build.artifactstagingdirectory)\\" 

Uno può anche estrapolare dai <PropertyGroup /> blocchi definiti in questi esempi:

https://msdn.microsoft.com/en-us/library/ff398069(v=vs.110).aspx

Da questo esempio:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <WebPublishMethod>Package</WebPublishMethod> 
    <LaunchASiteUrlAfterPublish>False</LaunchASiteUrlAfterPublish> 
    <SiteUrlToLaunchAfterPublish /> 
    <MSDeployServiceURL /> 
    <DeployIisAppPath /> 
    <RemoteSitePhysicalPath /> 
    <AllowUntrustedCertificate>False</AllowUntrustedCertificate> 
    <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer> 
    <DeployAsIisApp>True</DeployAsIisApp> 
    <MSDeployPublishMethod>WMSVC</MSDeployPublishMethod> 
    <UserName /> 
    <SavePWD>True</SavePWD> 
    <PublishDatabaseSettings> 
     <!— this section omitted to keep the example short --> 
    </PublishDatabaseSettings> 
    </PropertyGroup> 
</Project> 

Si potrebbe derivare il seguente elenco:

  • WebPublishMethod
  • LaunchASiteUrlAfterPublish
  • SiteUrlToLaunchAfterPublish
  • MSDeployServiceURL
  • DeployIisAppPath
  • RemoteSitePhysicalPath
  • AllowUntrustedCertificate
  • SkipExtraFilesOnServer
  • DeployAsIisApp
  • MSDeployPublishMethod
  • UserName
  • SavePWD
  • PublishDatabaseSettings