ASP .NET MVC 中 web.config 中的 TargetFramework 设置有何含义?

2023-12-24

我们的 ASP.NET MVC 5 Web 应用程序之一具有以下 web.config 设置:

<system.web>
  <compilation debug="true" targetFramework="4.6" />
  <httpRuntime targetFramework="4.5" />
  <!--... many other things -->
</system.web>

目前尚不清楚为什么有两个 targetFramework 设置,并且编译目标 4.6 然后尝试在 4.5 下运行似乎是错误的...

显然我错过了一些东西,但是什么呢?


原因是targetFramework存在于web.config是为了避免 .NET Framework 每个版本的重大更改之间出现兼容性问题。和...之间的不同targetFramework on compilation and httpRuntime属于每个开发和部署环境。

根据MSDN 博客 https://blogs.msdn.microsoft.com/webdev/2012/11/19/all-about-httpruntime-targetframework/:

<compilation targetFramework="4.6" />

选择 .NET Framework 参考程序集的版本 执行编译时使用。 (注意:Visual Studio 要求 该元素出现在 Web.config 中,即使我们自动推断它。)

此元素确定编译期间使用的程序集版本,以从当前项目创建依赖项和相关程序集。

<httpRuntime targetFramework="4.5" />意味着当前项目设计为使用 .NET 4.5 运行时程序集,而无需在将其加载到内存之前重新编译部署计算机中的现有项目程序集。

因此,我们可以得出结论,版本号定义在targetFramework in httpRuntime元素旨在维护运行时使用中已编译项目和可用程序集之间的兼容性,具体取决于目标计算机中使用的运行时文件版本。

因此,在您的情况下,这不是错误的行为,项目创建者只是希望保持运行时兼容性到具有类似特征的目标机器中可用的最低运行时版本(即版本 4.5),即使是使用较新版本编译的项目.NET 程序集。版本 4.5 和 4.6 之间的差异相对较小,因此在此上下文中将运行时版本保持为 4.5 仍然可以接受。

相关参考:

  • .NET 中的应用程序兼容性 框架 https://learn.microsoft.com/en-us/dotnet/framework/migration-guide/application-compatibility
  • 从 .NET Framework 4.5 迁移到的重定向更改 4.6 https://learn.microsoft.com/en-us/dotnet/framework/migration-guide/retargeting/4.5-4.6
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP .NET MVC 中 web.config 中的 TargetFramework 设置有何含义? 的相关文章

随机推荐

  • PL/SQL:有什么技巧可以避免对象的克隆吗?

    如果我们将一个对象变量分配给 pl sql 中的其他对象变量 则该对象将被克隆 因为 pl sql 不支持引用 例如 以下代码将打印两个不同的句子 create or replace type cla as object class wou
  • 在 Firebase Storage Swift 中使用图像引用数据库中的 Firebase 用户

    通常我可以在网上找到这个问题的答案 但由于它太新了 我一直遇到麻烦 当我让用户登录应用并为其个人资料选择 4 5 张图片时 如何将这些图像存储在 Firebase 存储中 并在 Firebase 数据库中将这些图像引用给该用户 Thanks
  • 如何在php中制作活动导航栏?

    您好 我正在尝试使我的导航栏在 php 中处于活动状态 以便用户可以知道他们所在的页面 我是php新手 对它了解不多 那么如何在此代码中添加 class active 来创建活动导航栏并在同一 index php 页面中显示所有页面 a h
  • ValueError:尺寸不匹配

    I use SciPy http scipy org and scikit学习 http scikit learn org stable 训练并应用多项式朴素贝叶斯分类器进行二进制文本分类 准确地说 我使用该模块sklearn featur
  • 序列化复杂类型 System.Nullable

    我想序列化 DateTime 以便当 DateTime 为 null 时我无法获取标签本身 我还设置了为上面指定的 bool 值 但我的问题是 DateTime 是值类型 它永远不会为 null 因此指定的 bool 值将始终为 true
  • Chrome 中的 Javascript 调试 - 对象名称?

    不知道 下图中圈出的东西 叫什么 使我的问题很难找到答案 下图中我圈出的东西叫什么名字 实际上是什么 myObject myFunction 是无关紧要的 我希望能够将其写到控制台 我尝试过以下方法 console log sp outpu
  • Spring Boot 2 未序列化 LocalDateTime

    我最近尝试使用 spring boot 2 实现一个微服务 现在 每当我尝试返回一个包含java time LocalDateTime从我的 REST 服务中 LocalDateTime 被序列化为整数数组 就像这样 id 5bf1425f
  • JDBC SQL 数据库被锁定?

    我正在编写一个使用本地 SQL 数据库来存储数据的程序 我正在使用这里找到的驱动程序 https bitbucket org xerial sqlite jdbc https bitbucket org xerial sqlite jdbc
  • 在 Web 项目中使用 SOLR 的最佳方法是什么?

    好吧 我对 SOLR 和 Lucene 完全陌生 但已经让 Solr 在 Tomcat 6 x 下开箱即用地运行 并且刚刚浏览了一些基本的 Wiki 条目 我有几个问题 也需要一些建议 Solr 可以索引文件 XML CSV 中的数据 也可
  • Apple Watch 应用程序可以与 Apple TV 交互吗?

    我正在寻找解决方案 甚至是关于在之间共享数据 发送信号等的可能性的线索Apple Watch应用程序和Apple TV app 就我而言 我有一个应用程序可以使用以下方法进行一些计算Apple Watch我希望这些计算能够对Apple TV
  • 如何让乘客配置重新启动应用程序正常工作?

    Ubuntu 14 04 上的 Rails 4 1 带有 rbenv 和 ruby 2 2 1 将 capistrano 与 capistrano passenger gem 一起使用 但最后重新启动失败 INFO 8213c63a Run
  • 在Python中向信号添加噪声

    我想向我在 Python 中模拟的 100 个 bin 信号添加一些随机噪声 使其更加真实 在基本层面上 我的第一个想法是逐个容器 生成某个范围内的随机数 然后从信号中添加或减去该数字 我希望 因为这是Python 可能有一种更智能的方法通
  • XInitThreads() 的缺点是什么?

    I know XInitThreads 将允许我从主线程以外的线程调用 X 服务器 如果我想使 Xlib 中的并发线程支持是必要的使用 Qt 从辅助线程调用 OpenGL http doc qt digia com qq qq06 glim
  • Restful 是仅适用于 Web 服务还是同时适用于 Web 服务和网页?

    我读了很多 PHP 的 Restful 教程 我不想深入探讨为什么我不使用RoR 这是因为团队对PHP更加熟悉 因为我们计划未来扩展 API 所以我了解到实现 Restful Web 服务非常重要 我看过诸如此类的教程 http www g
  • 在什么情况下,c++析构函数不会被调用? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • tools.jar 似乎不在 Windows 8 上的 Android Studio 类路径中

    我安装了 Android Studio 但它给了我错误 我需要安装 JDK 但 JDK 已经安装了 然后我意识到它要求安装64位版本的JDK 无论如何 我刚刚下载了最新的 JDK 64 位版本并在环境变量中设置了以下内容 但 Android
  • 如何让 docker-machine 在特定位置创建虚拟机

    我的开发机器是一台笔记本电脑 配有小型 SSD 和巨大的外部磁盘 理想情况下 我希望 docker machine 使用外部驱动器 而不是填满我的内部磁盘 我知道我可以用安装等方式破解它 但是有没有办法让 docker machine 命令
  • Drupal Android 应用程序登录持久性

    我已经成功设置了一个 Android 应用程序 可以登录到我的 drupal 网站 我的问题是登录的用户会话不会持续很长时间 该网站清楚地显示我的用户已登录该网站 但在一个小时左右的时间内 该用户不再在该网站上显示为活动状态 我猜测是因为我
  • 在fabricJS 中如何使用transformMatrix 变换点?

    我正在尝试放置点 通过fabric Circle 在一个角落fabric Polygon 用户可以移动 缩放或旋转多边形 但是 每次修改后我都希望获得多边形的新坐标来将我的圆放置在那里 在深入研究这个主题时我发现this http www
  • ASP .NET MVC 中 web.config 中的 TargetFramework 设置有何含义?

    我们的 ASP NET MVC 5 Web 应用程序之一具有以下 web config 设置