2009-08-05 3 views
3

私たちは、50のプロジェクト(主にクラスライブラリといくつかのWinフォームプロジェクト)を持つVisual Studio 2005ソリューションを持っています。MSBuildは、クリーンビルドのためにVisual Studioのメモリを3倍必要とします。

新たに開始されたVisual Studioのピークメモリ使用量(タスクマネージャによって記録された)でクリーンなデバッグビルドを実行すると、約500MBが表示されます。

MSBuildと同じビルド(クリーン、デバッグ)を行うと、ピークメモリ使用量は約1600MBとなり、最終的にOutOfMemory例外が発生して失敗します。

のMSBuild LargeProject.sln /対象:

これは私が実行していますコマンドがあるきれいな、構築/ NOLOGO /プロパティ:設定=デバッグ/冗長性:最小限の両方が実行された

2GBの物理RAMを搭載したWindows XP Professional 32ビットを搭載した同じPCにインストールしてください。

これはVisual StudioとMSBuildでのビルドの違いを説明していますが、ビルドに3倍のメモリが必要である理由を説明していません。MSDN article

これはなぜ起こるのですか?そして、MSBuildのメモリ要件を減らすためにできることがあれば。

答えて

0

他のほとんどのプロジェクトで参照されていたVisual Studioソリューションからプロジェクトを削除しました。その後、プロジェクトの代わりにプロジェクトのdllを参照するようにプロジェクトを変更しました。これにより、MSBuildのメモリ使用量が1600MBから約1200MB(差分400MB)に減少し、成功しました。

削除されたプロジェクトは約5クラスほどではなく、最終的なデバッグDLLは40kb、リリースバージョンは28kbでした。このプロジェクトには、Microsoft.VisualBasic.Compatibility、SystemおよびSystem.Windows.Formsの3つの参照があります。

以下で参照されたソリューションから他のプロジェクトを削除しようとしましたが、MSBuildはOutOfMemory例外で失敗しました。

関連する問題