我有一个 Visual Studio 2008 解决方案,其中包含超过 40 个相互依赖的 C# 和 C++/CLI 项目。使用该解决方案的速度非常慢,通常我一次只需要几个项目。因此我决定将解决方案拆分为包含 3-5 个项目的多个解决方案。我还想保留所有项目的“完整”解决方案(它对于自动构建或影响所有项目的大型重构操作很方便)。(这是这里的主要条件。否则,当然,将项目拆分为解决方案是微不足道的。)
有什么办法可以做到这一点吗?
我的第一个想法是创建新的空解决方案,并将一些现有的项目文件添加到每个解决方案中。但如果我这样做,VS 将无法再找到项目引用(因为它们不在同一个解决方案中)。我可以将引用添加为“正常”文件引用。但如果我这样做,我的“完整”解决方案将不再起作用,因为依赖项丢失了。
EDIT:
谢谢大家的答案。我想澄清一下我的问题:我的解决方案包含 44 个项目,不包括测试。所以把它分成 2 部分并不是我真正想要的,我更多地考虑的是 5-8 部分。这就是为什么我想保留“完整”解决方案,让 VS 可以找出完整构建的正确构建顺序。手动维护 8 个独立解决方案的构建顺序(例如在批处理文件中)对我来说似乎很容易出错。
另外,我想“逻辑地”对项目进行分组(即我希望将通常在一个解决方案中一起修改的项目)。但该分组并不总是与依赖项相匹配。例如,假设我有依赖链
A is referenced by B is referenced by C is referenced by D
并想象 A 和 D 经常一起修改,但 B 和 C 很少改变。 (显然,B 使用的 A 的接口必须保持不变。)然后我希望 A 和 D 在一个解决方案中,B 和 C 在另一个解决方案中。但是,只有当我想从头开始构建所有项目时,我才能拥有包含 A、B、C 和 D 的完整“完整”解决方案,这才有效。构建完成后,我可以打开我的 A/D 解决方案并仅编辑/构建这两个项目。
但我担心我的问题没有优雅的解决方案。 (双关语不是故意的)
您可能需要考虑的另一种方法是仅卸载不使用的项目,只需右键单击并卸载您不使用的项目...这应该会产生更加快捷的 Visual Studio。它保留了 VS 内存中的很多内容。
您可以做的其他事情是编辑构建定义并删除任何未修改的项目(取决于您的链接方式......您知道需要/更新/不需要什么)。
Solution-> 右键单击 ->配置管理器-> 取消选中Build在任何不变且不需要的项目上每个构建由于某些其他原因。这可以通过使用这些项目最后一次构建的输出(无论它们将二进制文件转储到何处)来加快构建速度。
Note:您仍然可以右键单击一个项目并构建以更新其输出,然后重建解决方案以获得最新的...您可以执行此操作,而不是来回更改构建配置以包含它。
Update
本着走性能路线的精神(例如,真正等到 VS 2010),您是否采取了其他一些堆栈溢出问题中列出的措施:Visual Studio 上的编译时间非常慢 https://stackoverflow.com/questions/55517/very-slow-compile-times-on-visual-studio and Visual Studio 优化 https://stackoverflow.com/questions/8440/visual-studio-optimizations?这些可以产生很大的影响,并且可以将性能提高到可接受的水平,而我们等待 VS 2010 发货 http://weblogs.asp.net/scottgu/archive/2009/12/17/visual-studio-2010-and-net-4-0-update.aspx.
还有一些可以对性能产生良好影响的事情:
- I 强烈推荐SSD http://www.codinghorror.com/blog/archives/001304.html如果可以的话。它们成本高昂,但绝对值得,解决方案中的文件越多,回报就越大。当我们在工作中订购新机器时,整个开发团队都选择了 SSD,差异是惊人的。当您处理大型解决方案时,它会旋转驱动器,将物理磁头切换到数千个位置,只是为了读取其中的文件……这就是 SSD 获胜的地方,寻道时间实际上为 0 毫秒。
- 同样,免费的解决方案是一个很好的碎片整理工具(仅当您使用物理、不要对 SSD 进行碎片整理)会产生很大的差异...如果您使用的东西牢记视觉工作室。我建议MyDefrag http://www.mydefrag.com/(免费软件)因为它的碎片整理本机算法会记住目录结构,因此至少物理驱动器不会花费太多时间来切换解决方案中所需的文件,它们都在磁盘上非常接近。
- 根据上述 SSD 建议,请记住廉价驱动器和快速驱动器之间的 SSD 性能存在巨大差异,请在此进行一些研究。有了免费实用程序,不用担心您的系统例如 gParted http://gparted.sourceforge.net/您可以非常轻松地移动整个操作系统驱动器,并且您的旧驱动器仍将是备份...只要 SSD 可以容纳 C 上的数据,就可以了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)