超过100个项目的解决方案需要五分钟才能完成

时间:2009-09-29 19:03:01

标签: .net visual-studio-2008 visual-studio-2005 project-management prism

我有100多个项目的解决方案。构建需要很长时间,有时Visual Studio在构建期间崩溃。我该如何处理这个问题并尽量减少痛苦?我们在某个地方走得太可怕了吗?

问题的一些背景:

我们正在使用带有WPF的CAB,每个模块都有一个ui程序集和一个“服务器”程序集,它实际上只是数据库的一个层。只有一个团队,约有5名开发人员。

我不知道有多少个类或多少行代码。

5 个答案:

答案 0 :(得分:9)

你的问题在细节方面有点短暂,但我认为崩溃只是工作站资源问题。 100个项目本身并不是一个问题,只要有充足的理由可以拥有这么多,但是当你有超过10个项目时,我希望你有适合他们的某种管理结构。

你真的需要一直建设所有100个项目吗?您可以使用配置管理器关闭单个项目以进行构建,并且可以使用项目总数的子集创建解决方案文件。

例如,我们为其中一个企业应用程序提供了36个项目。除此之外,我们还提供了多个解决方案文件和配置,旨在允许我们的开发人员仅加载他们需要的项目和配置,以便与应用程序的给定子组件一起工作。换句话说,他们只是加载了36个项目的一些子集。我们的构建服务器负责将所有内容组合在一起。

我建议对您的应用程序进行一些分析,找出可以整合的内容,以及可以分割成其他解决方案文件的内容。

答案 1 :(得分:3)

您的问题似乎更多地与您的解决方案的设计有关,而与VS处理100个项目的能力有关。你真的想知道你的解决方案花费很长时间的事实是否是“我们设计错误的神圣废话”的代码味道。

如果“UI”程序集与“服务器”程序集之间的关系为1:1,则它们在逻辑上相同,可以组合。

在我看来,CAB / CAG模块程序集可以将所有依赖项放在一个程序集中。如果您打算在多个模块之间共享数据访问代码,那么将它分解为单独的程序集是有意义的。

如果您认为此方法不合适,我们通常会做的是有几个较小的解决方案,这样我们就可以在开发过程中在本地测试一些相关模块,但是我们的构建服务器构建的一个大型解决方案。这样,专用构建机器就可以体验很长的构建时间,而不是我们的本地开发盒(对于最小的项目来说,这也是一种很好的方法)。

答案 2 :(得分:2)

他们都需要同时建造吗?如果没有,您可以进入Configuration Manager并仅选择您当前需要构建的那些。

虽然在我看来解决方案中的100个项目相当多。这真的有必要吗?你能把它分解成更小的相关解决方案,还是真的有很多相互依赖的项目?

答案 3 :(得分:1)

您可以在解决方案资源管理器中右键单击单个项目,然后选择仅构建该项目的选项。如果构建顺序中有任何必要的项目,它也会构建这些项目,但这允许您只构建必要的项目。

答案 4 :(得分:0)

默认解决方案配置Debug和Release始终检查所有项目,并构建不是最新的项目。您可以创建自己的解决方案配置,其中禁用您不需要检查的项目的构建选项。