4

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

4

1 回答 1

5

通常 .Net 框架是向后兼容的,因此执行在 .Net 3.5 中开发的程序集在 4.5 上应该不是问题。

您应该看到:.NET Framework 中的版本兼容性

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

但也可能存在文章中提到的问题:

但是,在实践中,这种兼容性可能会因 .NET Framework 中看似无关紧要的更改和编程技术的更改而被破坏。例如,.NET Framework 4 中的性能改进可能会暴露早期版本中没有出现的竞争条件。同样,使用 .NET Framework 程序集的硬编码路径、与特定版本的 .NET Framework 执行相等比较以及使用反射获取私有字段的值都不是向后兼容的做法。此外,每个版本的 .NET Framework 都包含错误修复和与安全相关的更改,这些更改可能会影响某些应用程序和组件的兼容性。

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

于 2013-05-04T15:58:11.850 回答