Полный список аргументов /P MSDeploy для MSBuild из TeamCity

В настоящее время я использую лидера MSBuild в TeamCity для непрерывной интеграции на моем локальном сервере, и это работает очень хорошо. Однако у меня возникли проблемы с поиском полного списка поддерживаемых ключей командной строки для MSDeploy в том формате, который ожидает их TeamCity.

В разделе "Параметры" в данный момент я использую следующие переключатели:

  /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

Все они работают нормально, и MSDeploy работает так, как ожидалось.

Проблема возникает, когда я хочу добавить дополнительные параметры.

Я просмотрел параметры MSBuild и документацию MSDeploy, и мне кажется, что я нашел параметры командной строки, такие как:

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

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

Кажется, что эти ссылки для аргументов командной строки не соответствуют формату /P: например, CreatePackageOnPublish и DeployIISAppPath не являются признанными параметрами командной строки, но они отлично работают в процессе сборки TeamCity.

Где я могу найти полный документированный список аргументов MSDeploy в формате

/Р: Param = Значение

Дополнительная информация:

Здесь приведен список параметров:

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

Однако это не полный список - например, этот список не включает DeployAsIisApp или SkipExtraFilesOnServer, которые являются одновременно параметрами, которые работают в Team City Build.

Также этот связанный вопрос (возможно, дубликат): Действительные параметры для MSDeploy через MSBuild, который содержит некоторые аргументы, но не окончательный список.

Ответы

Ответ 1

Во-первых, короткий ответ: вы не можете найти полный список. MSBuild не имеет полного списка параметров, которые вы можете выбрать, поскольку вы можете отправлять любые параметры, которые вам нравятся. Это средство связи между вызывающим устройством MSBuild и автором MSBuild build script (например, файл vs sln или csproj).

Если в сборке script используется параметр, который используется, в противном случае он игнорируется.

Итак, это действительный вызов msbuild:

msbuild /p:<anything>=<anything>

Во-вторых, вы не должны отправлять параметры в msbuild из teamcity с помощью параметров /p: command. Вместо этого задайте конфигурационные или системные свойства в конфигурации сборки teamcity. Они будут автоматически передаваться в msbuild в качестве параметров.

Ответ 2

Вот параметры, используемые Visual Studio Team Services при создании определения сборки ASP.NET(Preview):

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

Можно также экстраполировать из блоков <PropertyGroup />, определенных в этих примерах:

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

В этом примере:

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

Вы можете получить следующий список:

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