1

ソースコードを取得して実行可能ファイルとDLLにビルドするビルドサーバーアプリを作成しようとしました。私のソリューションは、同じソリューションの他のプロジェクトに依存する複数のプロジェクトを含む非常に大きなものです。VS のビルドは、リリース構成で約 1 秒かかります。10分 したがって、おそらくそれを構築する唯一の方法は、それらを 1 つのソリューションとして構築することです。これが私が実行しているコードです(できるだけ正確に、私はそれを回復しようとしています):

var props = new Dictionary<string, string>();
props["Configuration"] = "Release";

var request = new BuildRequestData(solutionFullPath, props, null, new string[] { "Build" }, null);
var parms = new BuildParameters();
var buildManager = BuildManager.DefaultBuildManager;
var logger = new FileLogger() { Parameters = @"logfile=C:\temp\build.log" };    

parms.Loggers = new List<ILogger>() { logger };
parms.DetailedSummary = true;

var result = buildManager.Build(parms, request);

問題は最後の行にあります。この通話は終了しません (1 時間待ちました)。

私は別のアプローチも試しました.1つのプロジェクトを構築しようとしています:

var logger = new FileLogger() { Parameters = @"logfile=C:\temp\build.log" };
var projectInstance = new ProjectInstance(solutionFullPath);

projectInstance.SetProperty("Configuration", "Release");
projectInstance.Build(new List<ILogger>() { logger });

結果は同じでしたが。プロセスが実行され、ますます多くの RAM が使用されています (使用量の増加は 1MB / 5 ~ 10 秒と非常にゆっくりです)。1時間後、それは約でした。メモリ内のサイズは 0.5GB。Build() メソッドの前に停止して実行すると、タスク マネージャーで新しいプロセスが作成されないため、msbuild.exe を呼び出していない可能性があります。ログ ファイルが作成されますが、1 行もありません。正確に 0 バイトです。bin または obj ディレクトリは作成されず、Build() メソッドによる変更はないように見えます。

私は行き止まりに達しました。何をチェックすればよいかわかりません。何をすべきかわかりません。

この問題に対するアドバイス/解決策はありますか? 問題の解決につながるアドバイスをいただければ幸いです。

4

0 に答える 0