我正在开发一个 Visual Studio 扩展,我需要向用户显示 VS 错误列表中的错误。我希望这些错误能够阻止/破坏解决方案的构建/运行,即类似 我怎样才能实现这一点?
我尝试了两种方法,但它们都只显示错误,它们确实注意到破坏/阻止构建解决方案:
我也研究过使用Diagnostics,但你需要ReportDiagnostic,这似乎与代码分析器特别相关。
当且仅当您的扩展分析 C# 或 VB 代码时,您才应该扩展 Roslyn。
我的用例两者都没有,但我需要提出阻止编译的错误。
解决方案:
取消正在进行的构建
var dte = Package.GetGlobalService(typeof(DTE)) as DTE2;
// will be called if debugging, running, or building
dte.Events.BuildEvents.OnBuildBegin += (cancellationToken, progress) => {
if(isHasErrors) // TODO check for errors
dte.ExecuteCommand("Build.Cancel");
};