Visual Studio开始构建之前的长时间延迟

Mat*_*hew 9 .net c# msbuild visual-studio visual-studio-2012

我有一个包含50个项目的解决方案,每个项目至少有100个文件(我认为这是相关的).

问题是当我构建解决方案或单个项目时,在"构建输出"窗口被写入之前有5到10秒的延迟.将"构建输出"详细程度设置为"诊断"并不表示延迟的原因是什么.没有文件被更改(先前构建)时甚至会发生此延迟.

=== Build: 0 succeeded, 0 failed, 10 up-to-date, 0 skipped ==========
Run Code Online (Sandbox Code Playgroud)

当有变化时,在构建输出中,它表示构建需要大约2秒才能完成,但端到端大约需要7到12秒.

构建输出:

1>(omitted)
1>Time Elapsed 00:00:01.99
========== Build: 1 succeeded, 0 failed, 9 up-to-date, 0 skipped ==========
Run Code Online (Sandbox Code Playgroud)

的MSBuild:

Build succeeded.
     0 Warning(s)
     0 Error(s)

 Time Elapsed 00:00:02.17

 C:\Projects\SharedKernel.Tests>
Run Code Online (Sandbox Code Playgroud)

通过命令行运行MSBuild没有这样的延迟,2.17秒是按键盘完成的时间.

据我所知,msbuild任务本身在Visual Studio中快速执行,但似乎Visual Studio在msbuild任务启动之前在幕后做了一些导致这种延迟的事情.

当我检查的Visual Studio(devenv.exe的),虽然进程监视器,我注意到调用CreateFile,QueryDirectory以及CloseFile每个文件和文件夹的项目和项目的依赖.这似乎与查看时间表时的延迟相关.

如何减少从Visual Studio(右键单击项目>构建)开始构建构建过程到构建实际发生时的延迟?

我查看了以下答案以获得解决方案,但是它们要么不减少延迟,要么根本不适用:

Hol*_*ann 1

我认为你的问题是“我有一个包含 50 个项目的解决方案”。根据我的经验,这不应该用于开发。这应该仅用于构建服务器。所以我要做的就是制作几个解决方案文件。一个大的项目包含用于构建服务器的所有项目,而多个项目则包含几个用于开发的项目。这几种解决方案的打包应该以经常一起变化的内容为指导。如果答案就是一切,我会质疑项目结构。

因为我没有真正回答您的问题,与 msbuild 相比,vs 到底做了什么,所以我通常会将其写为评论。但我的声誉现在还不够(正在努力),但因为没有其他人推荐这个,我认为这显然值得一个答案。或者这太明显了以至于没有人指出这一点?那么请原谅我。