2011-10-27 8 views
1

私のアプリケーションは33個のプロジェクトで構成され、半分以上に相互依存性があります。私はCruiseControl.net 1.6を使用しています。私は単一のcsprojまたはslnの罰金を作ることができますが、タグを追加すると爆弾になります。どのように私は、複数のcsprojファイルを構築する強制することができますか?自衛隊Cruisecontrol.netとmsbuild - 1つのプロジェクトで複数のソリューションを構築するにはどうすればよいですか?

 <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> 

どのように私は1つの力のビルドで倍数を構築することができますか?

答えて

4

<msbuild>複数のタスクを使用すると、必要なだけ多くのタスクを<project>に含めることができます。

1

もう1つの方法は、MSBuildがTraversalプロジェクトを介してこれを処理できるようにすることです。大規模なソースツリーを構築し、ここでのMSBuildトラバーサルを使用して上の偉大なMSDNの記事があります:

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

0

他の答えは罰金ですが、私は正確である単一のソリューションファイルに対して私のCIビルドを持っていることを好むだろう開発者が毎日使うものと同じです。このようにして、ビルドを破るプロジェクト/ソリューションの変更は、開発者の作業環境に反映されます。

複数のソリューションファイルがある場合は、それらを異なるプロジェクトとして設定し、ProjectTriggerを使用して依存関係を表します。

Project Trigger

+0

率直に言って私は、ソリューションファイルが大きいソース・コントロール・システムで扱いにくくなり、彼らはちょうど彼らが仕事をする気にプロジェクトを読み込むことができれば、開発者の生産性が上がると思います。ビルドシステムをソリューションファイルから分離することで、これを達成できます。ちょうど私の2セント。私はこれのラインの両側の人々に会った。 –

+0

@ニック - 私は同意します。 30〜50以上のプロジェクトを持つソリューションを分割する必要があります。私は彼の設定を知らないので、多くの個別のビルドステップがあるCI環境は問題があります。そのため、単一のソリューションファイルとプロジェクトトリガーを含む複数のソリューションファイルについて言及しました。 –

+1

よろしくお願いします。 –

関連する問題