7月11号.NET 4发布了新版本。这个版本包含了众多补丁和特性,包括HTML5和对移植库的支持,有些内容之前也曾单独发布过。为了方便阅读,我们按照技术进行了归类。读者可以从KB2468871获得完整的列表和文件版本信息。
General
- 发送含有大于3兆附件的邮件会失败
WPF
- 在进行数据绑定时,如果数据源对象定义在控件命名空间之外时,WPF程序会崩溃
- 右键菜单有时会距离鼠标非常远
- 当应用程序读取.ttf文件时,文字显示不正确,还会出现非法访问,然后程序崩溃
- 在多点触摸屏上进行触摸操作时,程序崩溃,或者.vshost.exe进程崩溃。例如,当你滚动滚动条时,程序崩溃。
- 在使用.NET 4版WPF构建的程序中,如果在tab控件中设置文本格式,同时操作滚动条,程序会变得迟缓。
Visual Studio
- MSB4014:由于内部错误,意外终止构建
- 当插件程序在后台遍历项目时,Visual Studio 2010可能会崩溃
- 从睡眠模式中唤醒后,造成内存泄露
- 在Pending Changes窗口中做多选操作时,Visual Studio IDE消失,并弹出Dr. Watson错误。
- 当Entity Data Model引用一个数据库项目时,C#和VB项目无法运行,调试模式也无法工作。
- 当从Cassini请求.xap文件时,响应的MIME类型不是application/x-silverlight-app,而是application/octet-stream。
- 在Visual Studio 2010中,如果将调试器连接到sqlserver.exe进程,在托管SQL函数或托管存储过程上设置断点,符号文件会被正确加载,红色标记也会出现,但是断点却不起作用。
Visual Basic
- 在VB项目中使用My作为命名空间时,如果显式添加对Microsoft.VisualBasic.dll的引用,My命名空间将不起作用。
- 当在没有安装VB运行时的操作系统上运行含有VB Core程序集的VB程序时,如果这个程序在类型为Object的变量上使用了SyncLock语句,将会出现错误信息:请求的操作无效,函数 'Microsoft.VisualBasic.CompilerServices.ObjectFlowControl.CheckForSyncLockOnValueType' 未定义。
ASP.NET
- 在使用Server Core配置的服务器上,托管targetFramework属性设置为.NET框架的网页时,发生解析错误。
- 当客户端请求.asmx或.svc文件中定义的RESTful Web service时,如果此Web service使用了ASP.NET管道和非基于扩展名的URL处理,请求的状态可能会被错误的修改。
- 在.NET 4中,Application_Start和PreAppStart方法无法访问HttpUtility.HtmlEncode方法和相关API
- 使用SQL provider时,垃圾回收线程抛出异常
- 运行ASP.NET程序时,显示错误信息:HttpContext.User应该是一个MyWindowsPrincipal。
- 当Web应用程序在一台计算机上开发,而在另一台计算机上部署时,如果使用Visual Studio 2010调试这个应用,由于缺少符号和程序集,将无法显示托管方法。
- Plan 9 MVC是一个基于ASP.NET MVC的项目,比ASP.NET更新的更频繁。由于从版本2开始,不再设置为完全授权,所以那些需要完全授权的功能将无法正常使用。此次更新修正了这个问题,将后续版本重新设置为完全授权。
New Features
- ASP.NET在开发模式中支持多种IIS配置,在Visual Studio Web Designer中可以设置不同的项目使用不同版本的IIS。
- ASP.NET对Shared Web Hosting进行了优化,当缓存的程序集以符号链接的形式实现时,如果链接本身是合法的,将不会检查程序集的大小。
- 使用新语法创建HTML5兼容的TextBox控件。例如,下面的代码定义了HTML5兼容的TextBox:<asp:TextBox runat="server" type="some-HTML5-type" />
- 添加了VB编译器选项,可以让服务器端控件生成HTML5友好的HTML。例如:<asp:textbox runat="server" type="some-HTML5-type" ></asp:textbox>
- 在.NET之前的版本中,所有VB程序都会自动添加对Microsoft.VisualBasic.dd的依赖。此次更新后,可以使用命令行参数去除对此文件的依赖。消除依赖后,文件中的一些功能将会被嵌入到程序之中,其他功能则无法使用。
- 对移植库进行了修改,包括API和绑定。此次更新可以让CLR与移植库进行绑定,以便单个DLL可以同时运行于.NET 4、Silverlight、XBox和Windows Phone中。公有Silverlight API也被添加到.NET 4的相同位置。API签名在不同平台保持一致。所有的修改都完全兼容,不会影响任何以后代码。
- 扩展了编译Silverlight 5 XAML文件所需的移植库文件。
查看英文原文:Update to .NET Framework 4