【问题标题】:How to force VisualStudio to do a check for .Net Service Pack compatibility?如何强制 VisualStudio 检查 .Net Service Pack 兼容性?
【发布时间】: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


【解决方案1】:

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

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

您能解释一下您想要达到的目标吗?

【讨论】:

  • 我正在尝试让开发人员在进行代码签入之前检查代码是否与 .Net-2.0-with-no-Service-Pack 兼容。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2020-01-21
    • 1970-01-01
    • 2020-10-16
    • 2016-11-23
    • 2012-08-15
    • 2022-11-20
    • 1970-01-01
    • 2021-12-12
    • 2011-07-21
    相关资源
    最近更新 更多