【发布时间】:2012-05-26 09:29:28
【问题描述】:
.Net 服务包发布后,一些新类可能会使用新方法进行扩展。
其中一种方法是 WaitHandle.WaitOne(int timeout) 方法,该方法仅在 .Net 2.0 SP2 之后才存在。
当开发人员编写代码时,他们有时不会重读 MSDN(尤其是对于他们足够了解的东西),或者看不够彻底,而只是使用智能感知从下拉框中选择方法(因为他们有 . Net 2.0 sp2 已安装)。
然后,程序可以在没有 SP2 的框架 2.0 的计算机上引发 MethodMissingException。提前了解此类不兼容可能有助于避免此问题。
是否有可能以某种方式强制 Visual Studio (2010) 验证 Framwork 的 Service Pack 的兼容性级别?也许有任何插件? 我希望 Resharper 可以做到这一点,但似乎做不到。
编辑: 我想要的是,如果代码应该与 .Net SP1 兼容,那么编译器或插件会在开发人员尝试使用仅存在于 SP2 中的方法或类时警告开发人员。
谢谢
【问题讨论】:
-
什么意思:验证 Framwork 的 Service Pack 的兼容性级别?
-
我的意思是如果代码应该与 .Net SP1 兼容,那么编译器或插件会在开发人员尝试使用仅存在于 SP2 中的方法或类时警告开发人员。
-
那是个错误。没有办法保护自己免受它的侵害。 .NET 4 有特定的对策来防止这种情况在未来发生,引用程序集不再是运行时程序集的副本。
标签: .net compatibility missingmethodexception