asp.net - web.config 中有多个 ASP.NET 目标框架。使用的是哪一个?
问题描述
我正在开发一个大型 ASP.NET 解决方案。解决方案内部是多个 ASP.NET 项目。在每个项目中,都有一个 web.config 文件。几周前,我尝试将所有项目从 .NET 4.5 升级到 .NET 4.7。我通过右键单击解决方案资源管理器中的每个项目、转到属性并在弹出的屏幕上设置 .NET 版本来做到这一点。使用这种方法,我能够轻松地将解决方案中的所有项目更改为 4.7(或者我认为是这样)。几天后,我查看了其中一个项目的 web.config 文件并看到了这个(不完整的文件):
<system.web>
<httpModules/>
<httpRuntime enableVersionHeader="false" targetFramework="4.5"/>
<sessionState REMOVED>
<providers>REMOVED
</providers>
</sessionState>
<compilation debug="true" targetFramework="4.7">
据我所知,我正在运行的项目使用 4.7,并忽略了 4.5 targetFramework 代码。我可以访问 4.7 API 调用,并且使用上面显示的方法将代码回滚到 4.5 会禁用 4.7 API 调用。尽管如此,我还是忍不住担心。
为了让事情变得更复杂,我的 packages.config 文件中有这样的文本:
<package id="EntityFramework" version="6.1.3" targetFramework="net45" />
说了这么多,我的项目是在 4.7、4.5 还是某种奇怪的组合中运行?
我的代码是安全的,还是会在某种奇怪的边缘情况下自毁?
解决方案
推荐阅读
- angular - 如何使用 Angular 7 显示 DFP 广告?
- javascript - 如何在 ReactJS 中使用带冒号的动态路由
- python-3.x - 根据 Pandas 中其他列的对应值替换列值
- c++ - 如何别名、声明和一起启动
- python - 无法使用 python cv2 在 Windows 上同时从两台摄像机(通过一个集线器)捕获帧
- database - Oracle 数据库通过 sqlplus 连接,但侦听器未在我的 Ubuntu 上运行
- php - MySQL:验证速率范围内的日期范围(laravel 可选)
- python - python将值映射到值而不是两个键值对
- c# - 如何在没有 C# 毫秒的情况下获得自 1970 年以来的秒数
- node.js - 为什么在下面的示例中命名中间件