安装 CLI 模板后 , 您可以通过和检查更新是否可用 。 --update-check--update-apply
▌NuGet 包验证
包验证工具使 NuGet 库开发人员能够验证他们的包是否一致且格式正确 。
这包括:
- 验证版本之间没有重大更改 。
- 验证包对于所有特定于运行时的实现是否具有相同的公共 API 集 。
- 确定任何目标框架或运行时适用性差距 。
在 .NET 5 中 , 我们提供了大约 250 个带有 .NET SDK 的分析器 。 其中许多已经存在 , 但作为 NuGet 包在带外发送 。 我们为 .NET 6 添加了更多分析器 。
默认情况下 , 大多数新分析器都在信息级别启用 。 您可以通过如下配置分析模式在警告级别启用这些分析器:<AnalysisMode>All</AnalysisMode>
我们为 .NET 6 发布了我们想要的一组分析器(加上一些附加功能) , 然后将它们中的大多数做成了可供抓取的 。 社区添加了几个实现 , 包括这些 。
| 贡献者 | 问题 | 标题 |
| 纽厄尔·克拉克 | dotnet/运行时 #33777 | 使用基于跨度的string.Concat |
| 纽厄尔·克拉克 | dotnet/运行时 #33784 | 解析时优先string.AsSpanstring.Substring |
| 纽厄尔·克拉克 | dotnet/运行时 #33789 | 覆盖Stream.ReadAsync/WriteAsync |
| 纽厄尔·克拉克 | dotnet/运行时 #35343 | 替换为Dictionary<,>.Keys.ContainsContainsKey |
| 纽厄尔·克拉克 | dotnet/运行时 #45552 | 使用代替String.EqualsString.Compare |
| 梅克特雷尔 | dotnet/运行时 #47180 | 使用代替String.Contains(char)String.Contains(String) |
▌为 Platform Compatibility Analyzer 启用自定义防护
CA1416 平台兼容性分析器已经使用 OperatingSystem 和 RuntimeInformation 中的方法识别平台防护 , 例如 OperatingSystem.IsWindows 和OperatingSystem.IsWindowsVersionAtLeast 。 但是 , 分析器无法识别任何其他保护可能性 , 例如缓存在字段或属性中的平台检查结果 , 或者在辅助方法中定义了复杂的平台检查逻辑 。
为了允许自定义守卫的可能性 , 我们添加了新属性 SupportedOSPlatformGuard并UnsupportedOSPlatformGuard 使用相应的平台名称和/或版本注释自定义守卫成员 。 此注释被平台兼容性分析器的流分析逻辑识别和尊重 。
▌用法
void M1{ApiNotSupportedOnBrowser; // Warns: This call site is reachable on all platforms.'ApiNotSupportedOnBrowser' is unsupported on: 'browser'
if (IsSupported){ApiNotSupportedOnBrowser; // Not warn}}
[SupportedOSPlatform("Windows")][SupportedOSPlatform("Linux")]void ApiOnlyWorkOnWindowsLinux { }
[SupportedOSPlatformGuard("Linux")][SupportedOSPlatformGuard("Windows")]private readonly bool _isWindowOrLinux = OperatingSystem.IsLinux || OperatingSystem.IsWindows;
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
