TeamBuild - 是否可以选择在构建时编译哪些项目?

时间:2009-04-30 11:56:32

标签: tfs build build-automation

我正在使用TeamFoundation自动化我的构建过程,我需要根据构建中的.proj文件选择要编译的项目。以下是完整的方案:

我有一个.proj文件,该文件使用.sln文件来编译包含2个网站的解决方案。 .sln文件配置为在发布配置中编译两个网站。

我的目标是每个构建类型只编译一个网站,即我希望BuildType1编译网站1和BuildType2来编译网站2.

是否可以“修改”.sln,以便我可以取消标记其中一个网站进行编译?由于这是一个自动化过程,每次我只想编译一个网站时,我都无法手动更改.sln。

2 个答案:

答案 0 :(得分:1)

查看TFSBuild.proj文件中的SolutionToBuild部分。

<SolutionToBuild Include="$(BuildProjectFolderPath)/path/MySolution.sln">
   <Targets>MyCustomTarget1;MyCustomTarget2</Targets>
   <Properties> Configuration=Release</Properties>
</SolutionToBuild>

答案 1 :(得分:1)

有两种主要方法可以控制构建:

  • 在您的团队资源管理器中创建单独的构建类型。这将有自己完全独立的TFSBuild.proj文件,因此它可以以完全不同的方式构建相同的代码库。设置SolutionToBuild以构建您想要的内容(如接受的答案中所述)。

  • 使用一个Build Type,并将其TFSBuild.proj设置为使用属性来控制构建的内容(这需要更深入地了解MSBuild脚本)。在Queue New Build对话框中,您可以使用/ p:命令行标志根据需要设置属性。例如“/ p:IncrementalGet = false; IncrementalBuild = false; ForceGet = true”将强制执行正常增量构建以执行完全重建。这对于偶尔的情况很有用,但对于日常构建来说并不是一个好主意,因为每次都必须手动设置参数。