我正在开发一个大型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还是某种奇怪的混合?
我的代码是安全的,还是会在某种奇怪的边缘情况下自毁?