【问题标题】:Full list of /P MSDeploy arguments for MSBuild from TeamCityTeamCity 中 MSBuild 的 /P MSDeploy 参数的完整列表
【发布时间】:2014-05-31 11:40:49
【问题描述】:

我目前在 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,其中包含一些参数 - 但仍不是最终列表。

【问题讨论】:

标签: msbuild continuous-integration teamcity msdeploy


【解决方案1】:

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

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

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

msbuild /p:<anything>=<anything>

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

【讨论】:

    【解决方案2】:

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

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

    也可以从这些示例中定义的&lt;PropertyGroup /&gt; 块推断:

    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>
    

    您可以得出以下列表:

    • 网络发布方法
    • LaunchASiteUrlAfterPublish
    • SiteUrlToLaunchAfterPublish
    • MSDeployServiceURL
    • 部署IisAppPath
    • RemoteSitePhysicalPath
    • AllowUntrustedCertificate
    • SkipExtraFilesOnServer
    • DeployAsIisApp
    • MSDeployPublishMethod
    • 用户名
    • 保存密码
    • 发布数据库设置

    【讨论】:

      猜你喜欢
      • 2011-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-08
      • 1970-01-01
      • 1970-01-01
      • 2014-11-23
      相关资源
      最近更新 更多