分析 dotnet 代码以了解平台依赖性

Analyze dotnet code for platform dependencies

是否有代码或程序集分析器可以确定代码的平台依赖性?比如注意代码是否有Windows依赖

ApiPort.exe 不会这样做:它只是表明您是否与 .Net 兼容(相对于 .Net Framework)。您的代码可以在 .Net 6 兼容性上全部变绿,但仍然具有 Windows 依赖性。 (例如,通过使用 System.Security.AccessControl.FileSystemAclExtensions。)

一个构建会告诉你,通过warning警告CA1416: This call site is reachable on all platforms. 'FileSystemSecurity.AddAccessRule(FileSystemAccessRule)' is only supported on: 'windows'. 但要做到这一点,您需要针对 a.Net 5/6 目标进行构建,而我的代码还没有为此做好准备。我还是想知道,我有多少 Windows 依赖?

建议?工具?

Microsoft 在 this article

中对其进行了很好的记录

The analyzer is enabled by default only for projects that target .NET 5 or later and have an AnalysisLevel of 5 or higher. You can enable it for target frameworks lower than net5.0 by adding the following key-value pair to an .editorconfig file in your project:

dotnet_code_quality.enable_platform_analyzer_on_pre_net5_target=true