2014-04-16 29 views
15

我目前在TeamCity中使用MSBuild的參與者來持續集成我的本地服務器,並且這種方式非常有效。但是,我無法按照TeamCity預期的格式查找MSDeploy支持的命令行開關的完整列表。TeamCity的MSBuild/P 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

看來,這些引用的命令行參數不要」 t對應於/ P:格式 - 例如CreatePackageOnPublish和DeployIISAppPath不是可識別的命令行參數,但它們在TeamCity構建過程中可以正常工作。

我在哪裏可以找到的格式MSDeploy參數的完整記錄清單

/P:帕拉姆=價值

附加信息:

還有這裏的參數列表:

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

但是,這不是一個完整的lis t - 例如,此列表不包含DeployAsIisApp或SkipExtraFilesOnServer,這兩個參數都可以在Team City Build中使用。

另外這個相關的問題(可能重複):Valid Parameters for MSDeploy via MSBuild其中包含一些參數 - 但仍然不是一個明確的名單。

回答

7

首先,簡短的答案是你找不到完整的列表。由於您可以發送任何您喜歡的參數,MSBuild沒有完整的參數列表供您選擇。它是MSBuild的調用者和MSBuild構建腳本的作者(例如vs vsn或csproj文件)之間的通信方式。

如果構建腳本使用參數,則使用該參數否則將被忽略。

所以這是的MSBuild一個有效的電話:

msbuild /p:<anything>=<anything> 

其次,你應該不發送參數從TeamCity的到的MSBuild使用/ P:命令選項。相反,請在您的teamcity構建配置中設置配置或系統屬性。它們將作爲參數自動傳遞給msbuild。

3

以下是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