Cruisecontrol.net和msbuild - 如何在一个项目下构建多个解决方案?

时间:2011-10-27 15:20:20

标签: msbuild cruisecontrol.net

所以,我的应用程序包含33个项目,其中一半以上具有相互依赖性。我正在使用CruiseControl.net 1.6。我可以构建一个单独的csproj或sln罚款,但是当我添加更多标签时,它会炸弹。如何强制构建多个csproj文件?sdf

      <msbuild>
    <executable>c:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe</executable>
    <workingDirectory>C:\Program Files\CruiseControl.NET\server\MA_Release</workingDirectory>

    <projectFile>WorksFineWith1.sln</projectFile>
    <projectFile>ErrorsOutWithMoreThan1.sln</projectFile>

    <buildArgs>/noconsolelogger /p:Configuration=Debug</buildArgs>
    <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger>
    <timeout>900</timeout>
  </msbuild>

如何使用一个强制构建来构建多个?

3 个答案:

答案 0 :(得分:4)

使用多个<msbuild>任务,您可以根据需要在<project>中执行任意数量的任务。

答案 1 :(得分:1)

另一种选择是允许MSBuild通过Traversal项目来处理这个问题。有一篇很棒的MSDN文章,关于构建大型源代码树并在这里使用MSBuild Traversal:

http://msdn.microsoft.com/en-us/magazine/dd483291.aspx

答案 2 :(得分:0)

其他答案都很好,但我更倾向于将CI构建针对单个解决方案文件,该文件与开发人员每天使用的完全相同。这样,破坏构建的项目/解决方案更改将反映在开发人员的工作环境中。

如果您有多个单独的解决方案文件,那么只需将它们设置为不同的项目,并使用ProjectTrigger来表示依赖项。

Project Trigger