Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使Visual Studio扩展的生成失败_C#_.net_Visual Studio_Visual Studio Extensions - Fatal编程技术网

C# 如何使Visual Studio扩展的生成失败

C# 如何使Visual Studio扩展的生成失败,c#,.net,visual-studio,visual-studio-extensions,C#,.net,Visual Studio,Visual Studio Extensions,我正在构建一个包管理器,我需要在每次构建之前恢复包 我已经钩住了DTE.OnBuildBegin来实现这一点,它工作得很好,但是如果出现错误,我需要使构建失败 DTE dte = (DTE)GetService(typeof(DTE)); dte.ExecuteCommand("Build.Cancel"); 我发现我可以使用ErrorListProvider添加到错误列表中,这非常有效,但是构建仍然在继续并成功。更糟糕的是,如果单击“运行”而不是“构建”,则恢复失败,但代码仍在运行。因为Vi

我正在构建一个包管理器,我需要在每次构建之前恢复包

我已经钩住了DTE.OnBuildBegin来实现这一点,它工作得很好,但是如果出现错误,我需要使构建失败

DTE dte = (DTE)GetService(typeof(DTE));
dte.ExecuteCommand("Build.Cancel");
我发现我可以使用ErrorListProvider添加到错误列表中,这非常有效,但是构建仍然在继续并成功。更糟糕的是,如果单击“运行”而不是“构建”,则恢复失败,但代码仍在运行。因为VisualStudio在运行时使用不同的视图,所以在运行时看不到错误列表


如何使生成失败?

以下代码将取消生成

DTE dte = (DTE)GetService(typeof(DTE));
dte.ExecuteCommand("Build.Cancel");

也许您可以考虑使用StopOnFirstBuildError扩展工具:StopOnFirstBuildError不执行我想要的操作,它不根据错误列表检测错误,它根据实际的项目生成执行,但是StopOnFirstBuildError会取消生成,所以我看了一下它们的源代码,这给了我如何做的线索。(见我的答案)