Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TeamCity中MSBuild的/P MSDeploy参数的完整列表_Msbuild_Continuous Integration_Teamcity_Msdeploy - Fatal编程技术网

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

TeamCity中MSBuild的/P MSDeploy参数的完整列表,msbuild,continuous-integration,teamcity,msdeploy,Msbuild,Continuous Integration,Teamcity,Msdeploy,我目前使用TeamCity中的MSBuild runner在本地服务器上进行持续集成,效果非常好。但是,我很难以TeamCity所期望的格式找到MSDeploy支持的命令行开关的完整列表 目前,在“参数”部分,我使用以下开关: /P:Configuration=OnCommit /P:DeployOnBuild=True /P:DeployTarget=MSDeployPublish /P:MsDeployServiceUrl=https://CIServer:8172/MsDe

我目前使用TeamCity中的MSBuild runner在本地服务器上进行持续集成,效果非常好。但是,我很难以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

这些命令行参数的引用似乎与/p:format不一致——例如,CreatePackageOnPublish和DeployIISAppPath不是公认的命令行参数,但它们在TeamCity构建过程中运行良好

在哪里可以找到格式为的MSDeploy参数的完整文档列表

/p:Param=值

其他信息:

这里有一个参数列表:

但是,这并不是一个完整的列表-例如,此列表不包括DeployAsiSapp或SkipExtraFilesOnServer,这两个参数都是在Team City构建中工作的参数


还有这个相关的问题(可能重复):其中包含一些参数,但仍然不是一个确定的列表。

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

如果生成脚本使用参数,则会使用该参数,否则将忽略该参数

因此,这是对msbuild的有效调用:

msbuild /p:<anything>=<anything>
msbuild/p:=

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

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

/p:DeployOnBuild=true 
/p:WebPublishMethod=Package 
/p:PackageAsSingleFile=true 
/p:SkipInvalidConfigurations=true 
/p:PackageLocation="$(build.artifactstagingdirectory)\\"
还可以从这些示例中定义的
块推断:

从这个例子中:

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

包裹
假的
假的
真的
真的
WMSVC
真的
您可以导出以下列表:

  • 网络出版法
  • 发布后发布
  • SiteUrlToLaunchaterPublish
  • MSDeployServiceURL
  • 部署路径
  • RemoteSitePhysicalPath
  • AllowUntrustedCertificate
  • SkipExtraFilesOnServer
  • 部署ISApp
  • MSDeployPublishMethod
  • 用户名
  • SavePWD
  • PublishDatabaseSettings

为感兴趣的人更新了vs2017 MSBuild参考: