在较旧的.net版本中编译的程序集在较新的.net版本中运行时,行为会发生变化

本文关键字:net 版本 变化 程序集 编译 运行时 | 更新日期: 2023-09-27 18:12:03

我有一个用。net 3.5编译的程序集。我无法在。net 4.5中重新编译它,因为它在其他仍在运行。net 3.5的应用程序中使用。当我在运行。net 4.5的应用程序中使用程序集时,程序集是否会被视为在。net 4.5而不是。net 3.5中运行?我有一个WinForms应用程序和一个WebForms应用程序都在。net 4.5。如果。net 3.5和。net 4.5之间的行为发生了变化,程序集是否会返回4.5的结果?

在较旧的.net版本中编译的程序集在较新的.net版本中运行时,行为会发生变化

通常。net框架是向后兼容的,所以执行。net 3.5开发的程序集在4.5上应该不成问题。

你应该看到:.NET框架中的版本兼容性

.NET Framework 4.5是向后兼容的都是使用。net框架1.1、2.0、3.0、3.5和4版本构建的。换句话说,使用先前版本构建的应用程序和组件. net框架的版本将在。net框架4.5上运行。

但也可能存在问题,就像文章中提到的那样:

然而,在实践中,这种兼容性可能会被看似.NET框架中无关紧要的变化和编程技术。例如,性能改进.NET Framework 4可以公开没有发生的竞争条件早期版本。类似地,使用硬编码路径到。net框架类执行相等比较的程序集.NET框架的版本,以及获取private的值字段使用反射是不向后兼容的做法。在此外,每个版本的。net框架都包含bug修复和与安全相关的更改可能会影响某些应用程序和组件。

对你来说最好的方法是确保你的测试用例在包含3.5的dll之后通过。