我有一个使用 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 中的更改破坏了您的应用程序,请检查运行时设置架构以确定您是否可以使用应用程序配置文件中的运行时设置来恢复以前的行为。
这可以帮助我吗?如何?