我有一个使用Visual Studio 2010和NET4.0正确编译正常工作的ASP.NET项目。
然后我安装了VS Express 2012和 NET4.5 ,我总是在尝试打开SqlConnection时遇到异常。
我是否有机会重新编译面向NET4.0的项目(因此无需卸载4.5)并使其正常工作?
在VS Express 2012中,我有这个web.config:
<system.web>
<compilation debug="true" targetFramework="4.0"/>
引用的程序集正确地定位到v4.0,例如:
Assembly System.Data
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Data.dll
编辑2 由于此博客http://blogs.msdn.com/b/msbuild/archive/2007/04/12/new-reference-assemblies-location.aspx以及此答案https://stackoverflow.com/a/8543850/1012244解释得非常好,因此引用程序集之间存在巨大差异(文件夹包含随x.xx框架提供的那些对引用有用的程序集在设计和构建新组件)和运行时方案期间(在运行时,在大多数情况下,这些组件仍将从GAC加载)。
但是,当我运行项目时,我总是得到异常,好像项目实际上是在使用NET4.5 ......为什么?
<击> PS。如果我在仅安装了NET4.0的生产服务器上部署此项目,则连接正常。 (现在很清楚:安装Net4.5基本上替换 Net4.0 )
更新的问题 - 我是否有机会重新编译我的项目,目标是OLD NET4.0 .dll(在我的情况下是System.Data.dll)而不是新的Net4.5 dll?
编辑 - 其他信息
在此MSDN链接http://msdn.microsoft.com/en-us/library/ff602939.aspx,我发现:
如果确定.NET Framework 4.5中的更改已破坏应用程序,请检查运行时设置架构以确定是否可以在应用程序配置文件中使用运行时设置来恢复先前的行为。
这可以帮到我吗?怎么样?