我继承了包含多个用户控件的 Windows Mobile 解决方案,并且在 Visual Studio 2008 中构建解决方案时遇到问题。当构建过程到达构建输出中的“Target Buildasmmeta:”时(我理解这意味着它正在工作在项目的用户控件部分上),Visual Studio UI 冻结。构建继续进行,最终它将完成并继续,但是 UI 变白并且 devenv.exe 进程在资源监视器中变红。此解决方案的构建时间非常长,一个项目包含 4 个用户控件大约需要 8 分钟,而整个解决方案的完整构建需要将近一个小时。
我注意到在构建项目时,Visual Studio 只使用一个核心,在构建期间它处于 100%。此外,当 Visual Studio 处于此锁定状态时,大多数其他 Microsoft 应用程序将无法运行,并显示一条消息,说明它们正在等待 Visual Studio 进程完成。
我已经设置了一个脚本来使用具有多个内核的 MSBuild 构建我的项目,这似乎完全避开了这些问题,但是在使用直接 MSBuild 调用来构建解决方案时,我在部署和调试方面遇到了一些问题。对于整个解决方案,使用此方法的构建时间通常为 4-5 分钟(相比之下,使用单个内核需要一个小时)。
系统规格为八核 AMD 3.6 ghz(64 位)处理器、32 GB 内存、(软件)RAID 1 中的 7200 rpm 硬盘驱动器、Windows 7 Ultimate 和带有 SP1 的 Visual Studio 2008。该解决方案由 11 个智能设备项目组成,并用 Visual Basic 编写。
最后,我确信代码中存在一些效率问题,但是这些构建时间似乎过长了,我正在尝试尽可能减少它们。感谢您对此问题的任何见解。