【发布时间】:2020-07-16 15:20:18
【问题描述】:
有很多关于async void 主题的问答。我们都同意这不是一件好事,我相信在所有情况下都是可以避免的。这就是为什么我想在使用它时创建一个 Visual Studio 错误消息。
在其他情况下它是成功的,例如:当函数返回 Task 时,Visual Studio 会发出警告 CS4014。我们使用Directory.Build.props 机制将此警告的句柄配置为错误。这是它的代码:
<Project>
<PropertyGroup>
<WarningsAsErrors>CS4014</WarningsAsErrors>
</PropertyGroup>
</Project>
如您所见,CS4014 的处理方式类似于错误。它工作正常。但是对于async void,没有警告消息,这就是为什么我们不能配置为将其作为错误处理。
有没有办法在msbuild 构建过程中添加自定义错误/警告消息?
在很多情况下,创建自己的错误/警告消息会非常有帮助。
【问题讨论】:
-
async void有一个用例,那就是事件处理程序。 -
有了包装函数,你也可以处理这种情况
-
您可以编写一个分析器来检测 async void,然后生成您自己的错误/警告
标签: c# visual-studio msbuild