【发布时间】:2011-06-21 19:50:26
【问题描述】:
我有一个相当大的复杂应用程序,它在一个解决方案中具有智能客户端前端,在另一个解决方案中具有 Web 服务层。我们在 TFS 2010 中使用 2 个团队构建定义来构建解决方案。我们仍在使用 MS Build 脚本,而不是基于新工作流的模板。
我们如何使用单个构建定义来构建两种解决方案。我们对 MS Build 脚本中的技巧或迁移到新的工作流模板持开放态度。
【问题讨论】:
我有一个相当大的复杂应用程序,它在一个解决方案中具有智能客户端前端,在另一个解决方案中具有 Web 服务层。我们在 TFS 2010 中使用 2 个团队构建定义来构建解决方案。我们仍在使用 MS Build 脚本,而不是基于新工作流的模板。
我们如何使用单个构建定义来构建两种解决方案。我们对 MS Build 脚本中的技巧或迁移到新的工作流模板持开放态度。
【问题讨论】:
如果我了解您要执行的操作,您可以通过在项目组中创建两个解决方案来简单地设置它们来构建
<SolutionToBuild Include="$(BuildProjectFolderPath)/../../$(SuiteSourceBranchRoot)/MyCompany.Suite.sln">
<Targets></Targets>
<Properties></Properties>
</SolutionToBuild>
<SolutionToBuild Include="$(BuildProjectFolderPath)/../../$(SuiteSourceBranchRoot)/MyCompany.Another.sln">
<Targets></Targets>
<Properties></Properties>
</SolutionToBuild>
</ItemGroup>
您也可以在任何构建步骤中使用:
<!-- Build the deployment solution. -->
<MSBuild Projects="$(SolutionRoot)\$(SuiteSourceBranchRoot)/Company.Deployment.sln" Properties="Configuration=Release;" />
【讨论】:
您可以通过在 TFSBuild.proj MSBuild 项目文件中定义多个 SolutionToBuild 项目,从单个团队构建项目定义构建多个解决方案。
<ItemGroup>
<SolutionToBuild Include="$(SolutionRoot)\A\A.sln" />
<SolutionToBuild Include="$(SolutionRoot)\B\B.sln" />
</ItemGroup>
您可能还必须修改构建定义的工作区映射以包含两种解决方案的源代码。
【讨论】: