targetFramework
存在的原因web.config
是为了避免在.NET Framework每个版本的重大更改之间存在兼容性问题。targetFramework
oncompilation
和之间的区别在于httpRuntime
每个开发和部署环境。
根据MSDN博客:
<compilation targetFramework="4.6" />
选择在执行编译时使用哪个版本的.NET Framework参考程序集。(注意:即使我们自动推断,Visual Studio要求该元素也必须存在于Web.config中。)
该元素确定在编译期间用于从当前项目创建依赖项和相关程序集的程序集版本。
<httpRuntime targetFramework="4.5" />
表示当前项目设计为使用.NET 4.5运行时程序集,而无需在加载到内存中之前重新编译部署计算机中的现有项目程序集。
因此,我们可以得出结论,targetFramework
在httpRuntime
元素中定义的版本号旨在在运行时使用中维护编译的项目与可用程序集之间的兼容性,具体取决于目标计算机中使用的运行时文件的版本。
因此,在您的情况下,这不是错误的行为,项目创建者只想保持运行时兼容性为目标计算机中具有类似特征的最低运行时版本(即4.5版),甚至是使用较新版本的项目编译的项目。 .NET程序集。4.5版和4.6版之间的差异相对较小,因此在这种情况下仍可以将运行时版本降至4.5版。
相关参考:
https://msdn.microsoft.com/zh-CN/library/dn833123(v=vs.110).aspx
https://msdn.microsoft.com/zh-CN/library/dn833125(v=vs.110).aspx