来自TeamCity的MSBuild的/ P MSDeploy参数的完整列表

时间:2014-04-16 14:20:31

标签: msbuild continuous-integration teamcity msdeploy

我目前使用TeamCity中的MSBuild运行器在我的本地服务器上进行持续集成,这非常有效。但是,我无法以TeamCity期望的格式查找MSDeploy支持的命令行开关的完整列表。

在我使用以下开关的'参数'部分中:

  /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参数的完整文档列表

/ P:PARAM =值

其他信息:

这里有一个参数列表:

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

但是,这不是一个完整的列表 - 例如,此列表不包括DeployAsIisApp或SkipExtraFilesOnServer,它们都是Team City Build中的参数。

此相关问题(可能重复):Valid Parameters for MSDeploy via MSBuild包含一些参数 - 但仍不是明确的列表。

2 个答案:

答案 0 :(得分:7)

首先,简短的回答是你无法找到完整的清单。 MSBuild没有您可以选择的完整参数列表,因为您可以发送任何您喜欢的参数。它是MSBuild调用者和MSBuild构建脚本(例如vs sln或csproj文件)的作者之间的通信方式。

如果构建脚本使用参数,则使用它,否则忽略它。

所以这是对msbuild的有效调用:

msbuild /p:<anything>=<anything>

其次,您不应该使用/ p:命令选项从teamcity向msbuild发送参数。而是在teamcity构建配置中设置配置或系统属性。它们将作为参数自动传递给msbuild。

答案 1 :(得分:5)

以下是Visual Studio Team Services在创建ASP.NET(预览版)构建定义时使用的参数:

/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
  • 用户名
  • SavePWD
  • PublishDatabaseSettings