2013-01-16 279 views
7

您能否请教我如何加快编译,加载大型解决方案(〜50个项目)。 我的意思是只有VS 2012工作室或Windows设置,而不是硬件更改。Visual Studio 2012速度大解决方案

感谢

+0

什么是您的硬件 –

+0

英特尔Core i5-2400 [email protected] Ghz 3.10Ghz,8Gb Ram。 – Alexandr

+0

您还没有提到磁盘sybsystem ... SSD可以真正帮助加载时间。 – GregC

回答

5

我在Visual Studio 2012 Update 3的解决方案中使用了100多个项目,并且构建得非常快。

  1. 我同意Oded的共享输出目录评论,但是我想提一下,项目引用也可以。
  2. 确保您的\ Users \\ AppData \ Local \ Microsoft \ WebsiteCache文件夹为空。不管怎样,即使只使用桌面解决方案,这也是个问题。
  3. 我禁用了生产力Power Tools 2012,因为他们在后台编译代码,有点太过于我的喜好。禁用所有插件和扩展,看看它是否有任何区别。
  4. 抑制过度输出消息到磁盘并通过减少输出详细 Build-n-run
  5. 使用多核与MSBuild的筛选。
  6. 在编写代码时,尝试通过使用接口和抽象类(C#)来限制项目之间的依赖关系。
  7. 尝试新鲜* .suo和新鲜* .sdf文件。 (备份用户设置和数据库,然后删除它们并再次尝试编译)
  8. 当所有其他操作失败时,使用ProcessMonitor或使用Visual Studio的另一个实例进行连接,以在构建Visual Studio时对其进行配置。
  9. 尝试从构建中排除文件系统过滤器(如防病毒软件)。例如,某些防病毒软件可以在某些目录或文件名中跳过扫描。
+0

需要多长时间来构建100个以上项目的解决方案?它是否只有C#项目?原生C/C++?托管C++? – Fede

+1

所有项目在六分钟内建成,并在两分钟内重新连接。本机构建明显较慢。我们主要是C#。 F#项目的构建速度稍慢,但不会太糟糕,我会注意到。我们有家庭代码编译工具,占用大部分编译时间。 – GregC

7

考虑你在一个解决方案中50个项目的需要 - 具有通过相互引用是主要的原因怠工一个许多项目。

具有独立项目的少数几个有效原因之一是因为您需要单独部署生成的程序集。如果情况并非如此,请考虑组合项目 - 使用文件夹进行逻辑分隔。

项目数量越少,构建速度越快。另外,如果您将构建更改为输出到特定共享目录并引用DLL而不是项目,则不必要的重新编译数量应该大幅下降,但您必须自己管理构建顺序。

+0

+1对于共享输出目录。 – JoanComasFdz

相关问题