如何强制VisualStudio检查.Net Service Pack兼容性?

时间:2012-05-18 19:49:38

标签: .net compatibility missingmethodexception

当发布.Net Service Pack时,可以使用新方法扩展一些新类。

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

当开发人员编写代码时,他们有时不会重做MSDN(特别是对于他们已经知道的东西),或者看起来不够彻底,而只是使用intellisense从下拉框中选择方法(因为他们有。安装了Net 2.0 sp2。

然后程序可以在没有SP2的Framework 2.0的计算机上抛出MethodMissingException。提前了解这种不兼容性有助于避免这个问题。

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

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

由于

2 个答案:

答案 0 :(得分:0)

当您编译.net应用程序以定位特定版本的框架时,该应用程序将无法在旧版本上运行。

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

你能解释一下你想要实现的目标吗?

答案 1 :(得分:0)

如果使用过时的标记(http://msdn.microsoft.com/en-us/library/system.obsoleteattribute.aspx)标记某个功能,那么您可以为开发者添加警告信息,例如“使用函数a而不是函数b”。

看看这个问题,我问过:ASP.NET and IIS7 Winsock Error。我无法使用'GetHostByAddress',因为它很有用。