在 .net Framework 4.6.1 中完成的应用程序能否在 .net Framework 4.5 中安全运行

Will application done in .net framework 4.6.1 safely work in .net framework 4.5

我在 .net Framework 4.6.1 中创建了一个应用程序,它在本地主机上运行良好。但是在服务器(Windows server 2012)中,我们有.net framework 4.5.

我们应该将它升级到框架 4.7 还是在当前框架中工作?

.NET Framework 4.5 及更高版本与使用早期版本的 .NET Framework 构建的应用向后兼容。换句话说,使用以前版本构建的应用程序和组件无需修改即可在 .NET Framework 4.5 及更高版本上运行。但是,默认情况下,应用程序 运行 使用的是开发时所针对的通用语言版本 运行,因此您可能必须提供配置文件才能使您的应用程序 运行 .NET Framework 4.5 或更高版本。

实际上,这种兼容性可能会被 .NET Framework 中看似无关紧要的更改和编程技术的更改所破坏。例如,.NET Framework 4.5 中的性能改进可能会暴露早期版本中未出现的竞争条件。同样,使用 .NET Framework 程序集的硬编码路径、与特定版本的 .NET Framework 执行相等性比较以及使用反射获取私有字段的值都不是向后兼容的做法。

此外,.NET Framework 的每个版本都包含错误修复和与安全相关的更改,这些更改可能会影响某些应用程序和组件的兼容性。 所以我建议你把它升级到框架 4.7.

更多详情请查看: https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/version-compatibility

要看你有没有new features introduced in .NET 4.5.1 or later

为确保兼容性,您应该

  1. 将您的目标系统升级到(至少)4.6.1 或
  2. 将项目的“Target Framework”设置减少到(最多)4.5:

选项 1 将确保您在开发中使用的所有功能在目标系统上可用。

选项 2 将确保您在使用 .NET 4.5 中不可用的功能时遇到编译时错误。