6

我正在编写一个旨在在.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 来检查我使用过的每种方法???

谢谢

4

3 回答 3

4

您可以运行FxCop,它会在您调用服务包引入的方法时向您发出警告

于 2010-04-26T13:20:46.827 回答
0

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

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

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

于 2010-04-26T13:20:15.920 回答
0

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

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

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

于 2010-04-26T13:24:50.000 回答