0

当 .Net 服务包发布时,一些新类可能会使用新方法进行扩展。

其中一种方法是 WaitHandle.WaitOne(int timeout) 方法,该方法仅在 .Net 2.0 SP2 之后才存在。

当开发人员编写代码时,他们有时不会重读 MSDN(尤其是对于他们足够了解的东西),或者看不够彻底,而只是使用智能感知从下拉框中选择方法(因为他们有 .Net 2.0 sp2安装)。

然后,程序可以在没有 SP2 的框架 2.0 的计算机上引发 MethodMissingException。提前了解这种不兼容可能有助于避免此问题。

是否有可能以某种方式强制 Visual Studio (2010) 验证 Framwork 服务包的兼容性级别?也许有任何插件?我希望 Resharper 可以做到这一点,但似乎不能。

编辑:我想要的是,如果代码应该与 .Net SP1 兼容,那么编译器或插件会在开发人员尝试使用仅存在于 SP2 中的方法或类时警告他。

谢谢

4

2 回答 2

0

当您编译 .net 应用程序以针对特定版本的框架时,该应用程序根本不会在旧版本上运行。

如果您尝试在缺少方法的旧/新版本框架的机器上编译 .NET 应用程序,编译器将捕获此类错误。

你能解释一下你想要达到什么目标吗?

于 2012-05-18T20:05:03.710 回答
0

如果您使用过时标记 ( http://msdn.microsoft.com/en-us/library/system.obsoleteattribute.aspx ) 标记函数,则可以为开发人员输入警告消息,例如“使用函数 a 而不是功能 b"。

看看我问的这个问题:ASP.NET and IIS7 Winsock Error。我无法使用“GetHostByAddress”,因为它已过时。

于 2012-05-18T22:23:51.013 回答