C#访问修饰符是否影响构建时间?
背景: 我帮助维护一个大型传统ERP系统,该系统拥有超过6万条C#线,分为180个组件。vs2015中的构建时间超过5分钟,我们对加快构建速度感兴趣 我们已经利用了许多*.sln文件将项目划分为多个组,这些组对各种产品功能集或基础设施问题都有意义。这通常意味着我们可以通过构建少量的项目来进行一些修改但并非总是如此,因为核心基础结构程序集也承载业务逻辑:-->因此,处理某些功能会影响“核心”依赖项的dll,迫使我们重新构建所有180个项目 除了培养程序集之间过度的相互依赖性外,十多年的有机代码增长还产生了过度宽松的代码单元可访问性(“public”关键字随处可见) 问题C#访问修饰符是否影响构建时间?,c#,.net,performance,build,msbuild,C#,.net,Performance,Build,Msbuild,背景: 我帮助维护一个大型传统ERP系统,该系统拥有超过6万条C#线,分为180个组件。vs2015中的构建时间超过5分钟,我们对加快构建速度感兴趣 我们已经利用了许多*.sln文件将项目划分为多个组,这些组对各种产品功能集或基础设施问题都有意义。这通常意味着我们可以通过构建少量的项目来进行一些修改但并非总是如此,因为核心基础结构程序集也承载业务逻辑:-->因此,处理某些功能会影响“核心”依赖项的dll,迫使我们重新构建所有180个项目 除了培养程序集之间过度的相互依赖性外,十多年的有机代码增长
能否通过最小化所有类型和成员的可访问性来缩短构建时间?您应该关注项目之间的依赖关系。5分钟构建如此大的解决方案并不多。当任何项目中的更改需要完全重新生成时,问题就开始了,但这是紧密耦合程序集的问题。“我可以通过最小化所有类型和成员的可访问性来缩短生成时间吗?”--您可以缩短生成时间吗?这里怎么会有人知道答案呢?你只需要试试看。我可以想象可能会有影响,这取决于可访问性对编译器内存占用的影响,但除非您在相当旧/内存不足的系统上编译,否则您可能不会注意到这种影响。