2014-04-16 10 views
15

Ich verwende derzeit den MSBuild-Runner in TeamCity für die kontinuierliche Integration auf meinem lokalen Server und das funktioniert sehr gut. Ich habe jedoch Probleme, eine vollständige Liste der unterstützten Befehlszeilenoptionen für MSDeploy in dem von TeamCity erwarteten Format zu finden.Vollständige Liste von/P MSDeploy Argumente für MSBuild von TeamCity

In meinem Abschnitt ‚Parameter‘ im Moment ich mit den folgenden Schalter:

/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 

Alle diese scheinen gut zu funktionieren und die MSDeploy wie erwartet funktioniert.

Das Problem kommt, wenn ich zusätzliche Parameter hinzufügen möchte.

Ich habe Parameter MSBuild nachgeschlagen und die MSDeploy Dokumentation und ich scheine nur Kommandozeilenparameter wie diese zu finden:

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

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

Es scheint, dass diese Referenzen für Befehlszeilenargumente don‘ t entsprechen dem/P: -Format - beispielsweise CreatePackageOnPublish und DeployIISAppPath sind keine erkannten Befehlszeilenparameter, aber sie funktionieren im TeamCity-Build-Prozess einwandfrei.

Wo finde ich eine vollständige dokumentierte Liste der MSDeploy Argumente im Format finden

/P: Param = Wert

Zusätzliche Informationen:

Es gibt eine Liste von Parametern hier:

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

Dies ist jedoch keine vollständige lis t - Diese Liste enthält beispielsweise nicht DeployAsIisApp oder SkipExtraFilesOnServer, beides Parameter, die vom Team City Build funktionieren.

Auch diese verwandte Frage (möglicherweise doppelt): Valid Parameters for MSDeploy via MSBuild, die einige Argumente enthält - aber immer noch keine endgültige Liste.

Antwort

7

Erstens, die kurze Antwort ist, dass Sie die vollständige Liste nicht finden können. MSBuild verfügt nicht über eine vollständige Liste der Parameter, aus denen Sie auswählen können, da Sie beliebige Parameter senden können. Es ist ein Kommunikationsmittel zwischen dem Aufrufer von MSBuild und dem Autor des MSBuild-Buildskripts (z. B. eine vs-sln- oder csproj-Datei).

Wenn das Erstellungsskript den Parameter verwendet, wird es sonst verwendet, es wird ignoriert.

Das ist also ein gültiger Aufruf msbuild:

msbuild /p:<anything>=<anything> 

Zweitens sollten Sie nicht Parameter senden von Teamcity msbuild die/p mit: Befehlsoptionen. Setzen Sie stattdessen Konfigurations- oder Systemeigenschaften in Ihrer Teamcity Build-Konfiguration. Sie werden automatisch als Parameter an msbuild übergeben.

3

Hier sind die Parameter, die von Visual Studio Team Services beim Erstellen eines ASP verwendet werden.NET (Vorschau) Builddefinition:

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

Man kann auch von den in diesen Beispielen definiert <PropertyGroup /> Blöcke extrapolieren:

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

Aus diesem Beispiel:

<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> 

Sie könnten ableiten die folgende Liste:

  • WebPublishMethod
  • LaunchASiteUrlAfterPublish
  • SiteUrlToLaunchAfterPublish
  • MSDeployServiceURL
  • DeployIisAppPath
  • RemoteSitePhysicalPath
  • AllowUntrustedCertificate
  • SkipExtraFilesOnServer
  • DeployAsIisApp
  • MSDeployPublishMethod
  • Benutzername
  • SavePWD
  • PublishDatabaseSettings
Verwandte Themen