tfsbuild - TFS构建定义 - 要部署的默认Web应用程序

时间:2012-12-13 23:11:46

标签: tfs msbuild tfsbuild msbuild-4.0 build-server

我有两个MVC 3 Web项目,一个用于移动应用程序,另一个是常规桌面Web应用程序,最后添加的是移动应用程序,我有一个构建定义,每次我签入代码时都会部署(门控办理登机手续)。

我的问题是,由于我添加了移动设备,构建定义将该项目作为默认设置,因此我想知道是否可以指定“默认Web项目”,在这种情况下我想要部署桌面版而不是移动版。

我想知道是否可以从构建参数中指定,配置如下:

/ p:Configuration = Dev / p:Platform =“Any CPU”/ p:DeployOnBuild = true / p:DeployTarget = MSDeployPublish / p:MSDeployPublishMethod = WMSVC / p:MsDeployServiceUrl = https:// IP:Port / msdeploy .axd / p:username = xxx / p:password = xxx / p:AllowUntrustedCertificate = True / p:DeployIisAppPath = Path

在“要构建的项目”选项中,我有项目的解决方案(sln文件)

任何想法?

1 个答案:

答案 0 :(得分:1)

不是将其他属性添加到MSBuild命令行,而是编辑项目文件并在项目文件中设置属性。如果需要,请创建一个特定的配置以将它们放入,以便在Visual Studio中不总是发生部署。

 <PropertyGroup Condition="'$(BuildingInsideVisualStudio)' == false">
      <DeployOnBuild>true</DeployOnBuild>
      <MSDeployTarget>MSDeployPublish</MSDeployTarget>
      ....
      ....
 </PropertyGroup>

这样项目文件将知道何时部署。如果需要,您可以将这些项目粘贴到已经存在的Dev | AnyCPU PropertyGroup中,但这样它将始终在Visual Studio中构建。

为了能够通过命令行触发部署,您必须确保每个项目都侦听自己的命令行参数。

 <PropertyGroup Condition="'$(BuildingInsideVisualStudio)' == false">
      <DeployOnBuild Condition="'$(DeployDefaultWebsiteOnBuild)' == 'true'>true</DeployOnBuild>
      <MSDeployTarget>MSDeployPublish</MSDeployTarget>
      ....
      ....
 </PropertyGroup>

正如您所看到的,我已经向DeployOnBuild添加了一个条件,如果DeployDefaultWebsiteOnBuild设置为true,它将设置为true。现在,您可以从命令行设置该属性。

 /p:DeployDefaultWebsiteOnBuild=true