从VS11 Beta升级到VS2012 RC后,我已经将目标从.NET 4.0修改为.NET 4.5。 我注意到在 app.config 中有以下部分:
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
上面的内容是用来做什么的?
当我尝试从VS2012 RC中创建一个新项目(而不是升级现有项目)时,在app.config中我看不到上面的那一部分。
从VS11 Beta升级到VS2012 RC后,我已经将目标从.NET 4.0修改为.NET 4.5。 我注意到在 app.config 中有以下部分:
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
上面的内容是用来做什么的?
当我尝试从VS2012 RC中创建一个新项目(而不是升级现有项目)时,在app.config中我看不到上面的那一部分。
这是永恒的.NET版本棘手问题的副作用。 .NET 4.5不是.NET框架的并存版本,而是完全替换.NET 4.0安装。就像3.0和3.5替换了.NET 2.0安装一样。
3.0和3.5更新相当温和,框架只是获得了一堆新程序集。CLR和核心基类程序集没有改变。在很大程度上来说。
随着框架一起提供的clr.dll文件仍然具有4.0.30319版本号。与CLR的4.0版本相同的版本号。并且可以轻松执行针对.NET 4.0框架目标的.NET应用程序。
然而,该框架版本在内部进行了大量修改。它获得了语言投影,使您可以使用托管语言编写在Windows 8上运行的Metro应用程序。重大更改包括将类从一个程序集移动到另一个程序集,允许在手机或平板电脑上部署的应用程序规模适中。app.exe.config文件添加到您的项目上确保您的用户拥有所需的版本。部署.config文件是可选的,但当用户仅安装了.NET 4.0时,用户将看到一个相当不透明的异常消息。实际上不确定会是什么样子。当他没有安装4.5时触发的自动安装可能也无法起作用。
Web.config文件中<compilation>元素中的'targetFramework'属性仅用于针对.NET Framework 4.0及更高版本(例如'<compilation targetFramework="4.0"> ')。'targetFramework'属性当前引用的是晚于已安装的.NET Framework版本的版本。请指定有效的.NET Framework目标版本,或安装所需版本的.NET Framework。
- Leniel Maccaferri