如何通过Visual Studio扩展使构建失败

3
我正在构建一个包管理器,每次构建前需要恢复包。
我已经使用DTE.OnBuildBegin来实现这一点,它可以正常工作。但是如果出现错误,我需要使构建失败。
我发现可以使用ErrorListProvider来添加错误列表,它可以很好地工作,但是构建仍然继续并成功了。更糟糕的是,如果你点击运行而不是构建,恢复会失败,但代码仍然运行。由于Visual Studio在运行时使用不同的视图,因此您在运行时看不到错误列表。

enter image description here

如何使构建失败?

也许你可以考虑使用StopOnFirstBuildError扩展工具:https://marketplace.visualstudio.com/items?itemName=EinarEgilsson.StopOnFirstBuildError - Jack Zhai
StopOnFirstBuildError并不能满足我的需求,它不能基于错误列表检测错误,而是基于实际项目构建。然而,StopOnFirstBuildError确实可以取消构建,所以我查看了源代码,从中得到了解决方法。(请参见我的答案) - trampster
1个回答

1
以下代码将取消构建。
DTE dte = (DTE)GetService(typeof(DTE));
dte.ExecuteCommand("Build.Cancel");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接