CA2007 是否与 .NET Core 应用程序相关?

Is CA2007 relevant to a .NET Core application?

当我在我的项目上 运行 FxCop 时,我收到大量 ID 为 CA2007 的警告。 the docs 中缺少此 ID(它只是从 CA2006 跳到 CA2100),但我收到的消息是:

Do not directly await a Task without calling ConfigureAwait

我的印象是 .NET Core 没有使用同步上下文,这意味着我不需要使用 .ConfigureAwait(bool)。但是,当我尝试 Google 时,我现在只能找到 ASP.NET Core 的提及(例如 this blog post)。

鉴于我找不到任何权威的东西,我开始怀疑我是否将 ASP.NET 核心更改误认为是更普遍地适用于所有 .NET Core 的更改。

谁能给我一个明确的答案?

我是否需要检查我的应用程序并大量使用 ConfigureAwait?或者我应该在我的 FxCop 规则集中禁用 CA2007?

在某些情况下是的。如果您的代码曾被用作库或有人引入了 SynchronizationContext。参考这个article. https://devblogs.microsoft.com/dotnet/configureawait-faq/#ive-heard-configureawaitfalse-is-no-longer-necessary-in-net-core-true