Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 缩短Visual Studio生成时间_Performance_Visual Studio_Time_Build - Fatal编程技术网

Performance 缩短Visual Studio生成时间

Performance 缩短Visual Studio生成时间,performance,visual-studio,time,build,Performance,Visual Studio,Time,Build,我有一个VisualStudio解决方案,由大约100个项目组成。它们中的大多数形成一个依赖层次结构。现在,如果我为一个项目更改一个.cs并构建它,那么所有依赖的项目都会被构建——不管它们是否已被更改。有没有一种方法可以使VisualStudio只生成更改过的项目?每次我通过重建整个地块来做一点改变,我都在浪费时间。加起来真是太棒了 不,没有好办法。有时确实会出现一些增量构建(VisualStudio2010或更高版本),但没有保证 将成熟的项目编译成程序集,并从不稳定(当前正在开发)的项目中引

我有一个VisualStudio解决方案,由大约100个项目组成。它们中的大多数形成一个依赖层次结构。现在,如果我为一个项目更改一个.cs并构建它,那么所有依赖的项目都会被构建——不管它们是否已被更改。有没有一种方法可以使VisualStudio只生成更改过的项目?每次我通过重建整个地块来做一点改变,我都在浪费时间。加起来真是太棒了

不,没有好办法。有时确实会出现一些增量构建(VisualStudio2010或更高版本),但没有保证


将成熟的项目编译成程序集,并从不稳定(当前正在开发)的项目中引用它们。如果您正在进行适当的单元测试,这应该不是一个大问题。分而治之;首先完成依赖项并使其稳定,然后将其提交到程序集。

减少项目数量

每个项目生成一个
DLL
——部署的一个单元

如果需要以逻辑方式排列代码,可以在项目中使用文件夹

此外,请参考构建的DLL,而不是项目引用


这一建议奏效的原因:

  • 生成的DLL较少
  • 对这些DLL的引用较少,因此需要复制的DLL较少
  • 被许多其他项目引用的项目将为每个引用项目重新编译。如果使用DLL而不是项目引用,则不会发生重新编译

他必须重建相关项目是合乎逻辑的,因为他必须检查您是否破坏了任何东西。我不知道你是否有SSD,但对我来说,它有助于有一个SSD(大大缩短构建时间)。我敢肯定,你在调试过程中遇到的问题会使这样做变得不切实际。解决方案中有100多个项目,并且更改渗透到长构建时间中是一个设计/组织问题。你在什么时候停止改变纸牌的基础?当然你有一些应该是零下1000点的吗?没有一种简单的方法可以解决这个问题,无论如何,没有一种方法适合程序员的Q+a站点。也不能责怪工具,它只是做你要求它做的事情。将你对它的厌恶转化为对你的团队成员和架构师的信息。对此我们无能为力,我们没有你那么生气。这只会使生成速度变慢,因为必须重新生成相同或更多的代码。@peachykeen-试试看。你会感到惊讶的。更少的项目==更少的DLL。更少的DLL==更少的复制和更少的重新编译。我有更少的大型项目和更多的小型项目。我不是,当问题是需要重建的代码数量太多时,这没有帮助。文件副本的成本不足以导致这种问题,这是级联式的重新编译,而大型项目(总是)无法避免这种情况。@peachykeen-我的经验不同。关键是要移除级联——在减少程序集数量时,这非常有帮助。我正在谈论.NET代码——你可能在谈论C++——你能确认吗?