首页 > 解决方案 > 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 还是某种奇怪的组合中运行?

我的代码是安全的,还是会在某种奇怪的边缘情况下自毁?

标签: asp.net

解决方案


推荐阅读