目前尚不清楚为什么会出现此警告(如标题中的字面意思)及其含义。在我看来,措辞本身包含一个矛盾。多卡表示,该课程适用于所有平台。谁能澄清?
UPD
我找到了这个规则的文档 - CA1416: Validate platform compatibility,但它仍然不是很清楚。
目前尚不清楚为什么会出现此警告(如标题中的字面意思)及其含义。在我看来,措辞本身包含一个矛盾。多卡表示,该课程适用于所有平台。谁能澄清?
UPD
我找到了这个规则的文档 - CA1416: Validate platform compatibility,但它仍然不是很清楚。
警告很清楚 - 此代码仅在 Windows 上可用。随着 .NET 6 的发布,他们开始用特殊属性(或在项目设置中指明)标记一段代码,表明该代码仅在特定平台上可用。我经常看到这样的笔记
Blazor。您可以通过查看 .NET 源代码来了解这一点:https ://github.com/dotnet/runtime/tree/main/src/libraries/System.Security.Principal.Windows 。
目录.Build.props
它实际上指向 Windows。如果你不在 上运行这段代码
Windows,你会得到一个异常:因为
.NET 6跨平台,即使您构建它并在其上运行它Windows并不意味着相同的代码将/应该在其他平台上工作。因此,如果您假设您的代码只能在 Windows 上运行,那么您可以在项目设置中指定这一点,警告将消失: