如何使 Visual Studio 扩展的构建失败

How to fail the build from a Visual Studio Extension

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

我已经挂钩 DTE.OnBuildBegin 来实现这个,效果很好,但是如果出现错误,我需要使构建失败。

我发现我可以使用 ErrorListProvider 添加到错误列表,效果很好,但是构建仍然继续并成功。更糟糕的是,如果您单击 运行 而不是构建,恢复会失败,但代码仍然是 运行。因为 Visual Studio 在 运行ning 时使用不同的视图,所以在 运行ning 时你看不到错误列表。

构建失败怎么办?

以下代码将取消构建。

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