首页 > 解决方案 > 如何有效地预先确定我的 .NET Framework 库调用的所有未在 .NET Standard 2.0/2.1 中真正实现的方法?

问题描述

我如何才能有效地预先确定(例如,在等待运行时错误涌入之前;理想情况下,在进行代码转换之前)我的 .NET Framework 库调用的所有方法,这些方法实际上并未在 .NET Standard 2.0/2.1 中实现? 可移植性分析器仅告诉您该方法是否根本不存在(不会编译);编译器只告诉你什么不能编译;但是两者都不会告诉您哪些方法的功能已被破坏,以至于如果您的代码遇到它,它将产生运行时错误。我不想让我的用户找到这样的定时炸弹......虽然我想我的单元测试和自动化 UI 测试将覆盖我的代码的 100%,但我们大多数人还没有完全做到这一点.

所以,我希望有人知道一个分析器可以突出显示那些存在但没有实现的东西?...甚至有一个简单的方法列表,这些方法存在但不起作用?...或任何其他工具/方法来找到那些前面?

很高兴我在客户之前发现了这一点。但我想知道有多少其他方法在 .NET Standard 2.0 下同样编译得很好,但同样被破坏,以至于它们实际上无法正常工作。如果可移植性分析器告诉我……或者任何其他可能存在的工具/方法,那就太好了。)

标签: c#.netvisual-studio

解决方案


啊,quaabaam 的评论/链接比我以前发现的更好,因为它包括我一直缺少的两件事:

这种不受支持的方法的列表:
https ://docs.microsoft.com/en-us/dotnet/core/compatibility/unsupported-apis

并提到了与“.NET Portability Analyzer”不同的“Platform Compatibility Analyzer”。要在您的 .NET Standard xx 项目(或您正在考虑转换的 .NET Framework 项目)中启用它,请使用以下行将 .editorconfig文件添加到您的项目中:

dotnet_code_quality.enable_platform_analyzer_on_pre_net5_target=true

谢谢夸巴姆!!我在进行转换时打开了数十篇文章/帖子/MS-docs,但都没有提及!


推荐阅读