微软的一名高级项目经理
.NET 3.5 SP1 存在的问题。首先他问道“.NET Framework 3.5 SP1 会破坏 2.0 的应用程序吗?”,然后他肯定地回答“几乎肯定不会。”。然后他解释了为什么 3.5 SP1 不会影响现有的基于 CLR 2.0 和更高版本的.NET 应用程序, 他也承认“存在边界个案”。他建议进行内部测试以确保 SP1 不会破坏任何应用:
可能存在被破坏的功能,因此对所有 SP 你应该做兼容性测试确保你不会触及边界情况。
- 在创建泛型接口 / 方法的代理时,SP 破坏了 DynamicProxy 2
- 引发异常的代码是处理极端边界的个案的地方
- 被破坏的 DynamicProxy,破坏了使用它的.NET 应用(Rhino Mocks、Castle Windsor、NHibernate 和 Moq 是我目前想到主要使用它的应用)
- 我最近确认了这个问题并修改了 DynamicProxy 的代码,不再使用这些方法“r5323: 禁止调用 GetOptional/RequiredCustomModifiers 方法,因此所有的测试(除了一个之外)都通过了”
Hamilton 建议:
如果一些开发团队在 SP1 上运行 Castle 的测试用例,他们会发现这个问题。Mono 通过收集外部测试案例库来测试他们的平台实现。微软也应该这么做,避免对开源软件项目的伤害,许可证不是一个问题。如果不太可能是因为法律问题影响的话,CLR 开发团队可以简化同开源软件项目的沟通并尽早得到他们的反馈。
Scott Hanselman 承诺在 11 月份的某个时间会针对.NET 3.5 SP1 的补丁包通过 Windows Update 方式推出。更新这个补丁的时候,当前运行.NET 2.0 的电脑都被升级为.NET 3.5 SP1。在此期间,鼓励那些在使用.NET 3.5 SP1 过程中发现的问题的人们,把问题提交到微软
Connect 网站。
评论