我们有一个中等规模的解决方案,大约有 20 个项目。在其中一个中,我有我的商业实体。在编译任何项目时,Visual Studio 会在这个 BusinessEntities 项目上等待并挂起大约一分半钟。
我在 SharpDevelop 中尝试了我们的解决方案,它在 18 秒内编译了我们的完整解决方案。与 MSBuild 类似的时间。
我的猜测是 VS 试图找出项目是否需要编译,但是这个过程比实际执行编译慢了大约 15 倍!
我不能切换到伟大的sharpdevelop,它缺少我们调试场景的一些小但必不可少的要求。
我可以阻止VS检查这个项目,并让它在没有这样检查的情况下编译项目,就像sharpdevelop一样?
我已经知道在配置管理中取消选中项目以防止构建一些项目,但是我的开发人员会忘记他们需要在更新到最新源后编译这个项目,并且他们面临着对他们来说似乎很奇怪的问题。
编辑:调查的有趣结果:延迟仅发生在其中一个项目上。在配置管理器中,我取消选中所有项目,然后单独编译每个项目。所有项目在几秒钟内编译!!关键是:如果该特殊项目是直接构建的,则在几秒钟内编译,如果它正在构建(或跳过,因为它是最新的)作为构建另一个依赖它的项目的结果,VS挂起大约一分半钟,然后决定编译它(或跳过它)。我的结论:Visual Studio 正在检查是否有任何文件被更改,但由于某些原因,对于这个特殊项目来说效率极低!!