【问题标题】:How to check the compatibility between my program and the .NET Framework versions?如何检查我的程序与 .NET Framework 版本之间的兼容性?
【发布时间】:2011-02-12 09:49:26
【问题描述】:

我正在编写一个旨在在 .net framework 2.0 上运行的程序。

我在我的 VS 项目中选择了 2.0。

它在我的机器上运行良好(我的是 2.0 SP2),所以没有编译错误。但是当我试图在另一台机器上运行它时(只有 2.0,没有 sp),它无法运行。我知道我使用了一些受 2.0 支持但仅受 2.0 SP2 支持的方法。

.net framework 2.0 SP2 似乎没有在 VS IDE 中列出,这就是为什么当我在我的机器上编译时 VS 无法给我任何警告。

如何轻松检查我的代码与 .net framework 2.0 SP2 的兼容性?或者我只需要查看 msdn 来检查我使用的每种方法???

谢谢

【问题讨论】:

  • 方法未找到。我已经解决了这个问题,这是由于我使用了错误的方法造成的。

标签: .net version-compatibility


【解决方案1】:

如果您确定哪些特定库 (dll) 将 2.0 SP2 与仅 2.0 区分开来,您可以尝试以编程方式定位并加载它们。如果失败,则 SP2 不存在。

如果没有“新”dll,您可以使用反射来检查类是否具有特定方法。如果是这样,您就拥有了 SP2。

它是运行时的解决方案,因此您可以向用户显示友好的消息。

【讨论】:

  • 如果我什么都不知道怎么办?在上面的例子中,我在 2.0 的库中使用了一些方法,但是编译器没有告诉我它是针对 2.0 SP2 的。我只是想知道有什么简单的方法可以知道哪个方法或类来自 2.0 SP2 或更精确的 .net 框架版本?
  • @Jack:看MSDN页面上的方法描述。它总是说明哪个框架版本支持它,包括 SP 数据。
【解决方案2】:

【讨论】:

  • 谢谢。你的意思是我使用 FxCop 来分析代码,它会告诉我是否调用了 2.0 SP2 中的方法?
  • 谢谢大家。 FxCop 满足我的需求。非常有帮助。谢谢
【解决方案3】:

当没有 sp 时,您可以确定代码中的错误所在。

然后,您只需创建一个使用该结构的虚拟 sn-p 并捕获异常。

如果没有捕获到异常,那就没问题了。 如果抛出异常,您可能缺少 sp2。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 2017-06-15
    • 1970-01-01
    • 2023-02-08
    • 2011-07-21
    • 2014-10-16
    • 2020-10-16
    相关资源
    最近更新 更多