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

Kai*_*ine 23 msbuild teamcity continuous-integration 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
Run Code Online (Sandbox Code Playgroud)

所有这些似乎工作正常,MSDeploy按预期工作.

当我想添加其他参数时出现问题.

我查找了MSBuild参数和MSDeploy文档,我似乎只找到这样的命令行参数:

msbuild SlnFolders.sln /t:NotInSolutionfolder:Rebuild;NewFolder\InSolutionFolder:Clean
Run Code Online (Sandbox Code Playgroud)

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,它们是从团队我市建设工作,这两个参数.

此相关问题(可能重复):MSDeploy的有效参数通过MSBuild包含一些参数 - 但仍然不是一个明确的列表.

8DH*_*8DH 9

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

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

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

msbuild /p:<anything>=<anything>
Run Code Online (Sandbox Code Playgroud)

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


小智 5

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

/p:DeployOnBuild=true 
/p:WebPublishMethod=Package 
/p:PackageAsSingleFile=true 
/p:SkipInvalidConfigurations=true 
/p:PackageLocation="$(build.artifactstagingdirectory)\\"
Run Code Online (Sandbox Code Playgroud)

也可以从<PropertyGroup />这些示例中定义的块中推断出:

https://msdn.microsoft.com/zh-CN/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>
Run Code Online (Sandbox Code Playgroud)

您可以得出以下列表:

  • WebPublishMethod
  • LaunchASiteUrlAfterPublish
  • SiteUrlToLaunchAfterPublish
  • MSDeployServiceURL
  • DeployIisAppPath
  • RemoteSitePhysicalPath
  • 允许不受信任的证书
  • SkipExtraFilesOnServer
  • DeployAsIisApp
  • MSDeployPublishMethod
  • 用户名
  • 保存PWD
  • PublishDatabaseSettings