Полный список аргументов /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