我找不到这个确切问题的答案,但有相关问题。
我们有编译为使用.NET 4的BIG WinForms应用程序。但是,我们调用的几个DLL和所有第三方控件都被编译为使用.NET 2.显然这有效,但是有任何负面的性能问题因为这种情况,如果一切都使用.NET 4,它会更快。
我不是在尝试进行微优化,但是如果我只需重新编译我拥有的源代码就可以获得微小/小的提升,如果有增益,我愿意付出努力。
答案 0 :(得分:6)
理论上,不应对绩效产生任何重大影响。
.Net Framework的兼容性目标是以前版本的应用程序和组件应该能够在.Net Framework 4上顺利运行...
当.NET 4.0应用程序加载.NET 2.0程序集时,它会使用兼容模式功能加载到4.0运行时,这有助于防止破坏:
In-Proc SxS无法解决库开发人员面临的兼容性问题。由应用程序直接加载的任何库(通过直接引用或Assembly.Load)将继续直接加载到加载它的应用程序的运行时和AppDomain中。这意味着如果重新编译应用程序以针对.NET Framework 4运行时运行,并且仍然具有针对.NET 2.0构建的依赖程序集,那么这些依赖项也将加载到.NET 4运行时。因此,我们仍然建议您针对您希望支持的框架的所有版本测试您的库。这是我们继续保持高水平向后兼容性的原因之一。