1

私は、ワンクリックで多数のソリューションをバッチビルドする会社用のユーティリティを作成しています。全部で約 8 つのソリューションがあり、各ソリューションには平均 20 のプロジェクトがあります。ユーティリティは、コマンド ラインでビルドする場合と同様に、ビルド ログと各ソリューションのエラーの総数をキャプチャできる必要があります。私はこれがそれを達成するためのコマンドであることを知っています

msbuild mysolution.sln /t:build /verbosity:minimal /maxcpucount:xx

ただし、可能であれば Microsoft.Build.Evaluation API を利用したいと考えています。Project オブジェクトが 1 つのプロジェクトを読み込むことができることは知っていますが、ソリューション全体を構築する方法はありますか? このユーティリティを構築して、システム上のすべての CPU/コアを利用し、複数のソリューションを同時に構築するつもりです。ドキュメントは(まだ)ひどいものですが、Microsoft.Build.EvaluationのMSDNページを見てきました。

ご協力いただきありがとうございます。

ジェイソン

4

1 に答える 1

2

複数のプロジェクトをビルドするために、Visual Studio ソリューション ファイル (sln) は必要ありません。ご存知かもしれませんが、Visual Studio プロジェクト ファイルは単なる MSBuild XML ファイルであり、他のプロジェクト ファイルに該当する可能性があります。したがって、必要に応じて他のプロジェクトをビルドするプロジェクト ファイルをビルドします。これは、2 つの方法のいずれかで実行できます。

まず、ソリューション ファイルは単なる MSBuild XML であるため、XML を生成できるものはすべてソリューションを生成できます。詳細については、MSBuild XML スキーマを参照してください。

次に、インスタンスMicrosoft.Build.Evaluation.Projectを受け取り、 を呼び出すコンストラクターを使用してプログラムで を構築します。には、 、 、などの一般的な要素タイプを追加するためのメソッドがあります。Microsoft.Build.Construction.ProjectRootElementProject.Build()ProjectRootElementCreateTaskElement()CreatePropertyElement()CreateTargetElement()

以下も参照してください。

于 2012-09-30T01:57:01.487 に答える