分析 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
是否有代码或程序集分析器可以确定代码的平台依赖性?比如注意代码是否有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