.NET 3.5 SP1 正破坏一些应用程序

  • Abel Avram
  • 张善友

2008 年 10 月 17 日

话题:.NET微软语言 & 开发

微软的一名高级项目经理

Scott Hanselman

写了

.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

网站。

查看英文原文:.NET 3.5 SP1 Is Breaking Some Applications

.NET微软语言 & 开发