c# - Visual Studio Solution通过VS SDK获取Build后如何获取回调?

标签 c# .net visual-studio visual-studio-sdk

我正在使用下面编写的代码..

EnvDTE.DTE dte = (EnvDTE.DTE)Marshal.GetActiveObject("VisualStudio.DTE.12.0");
dte.ExecuteCommand("File.SaveAll"); // Saving all files before building

dte.ExecuteCommand("Build.ReBuildSolution"); // Buidling solution

我只想在成功构建解决方案后才执行后续代码语句。 是否定义了任何通知成功/不成功构建的回调..

最佳答案

首先,如果您正在使用扩展(加载项或程序包),请不要使用这种获取 DTE 实例的方式,因为 Marshal.GetActiveObject(...) 返回 DTE 的运行实例,如果您打开两个 VS 实例,您可能会得到错误的实例。正确的做法是:

二、看文章:HOWTO: Performing some action before or after a build from a Visual Studio macro or add-in

最好的方法是使用 IVsBuildableProjectCfg.AdviseBuildStatusCallback获取IVsBuildStatusCallback.BuildEnd的方法调用并检查 fSuccess 参数。

关于c# - Visual Studio Solution通过VS SDK获取Build后如何获取回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27501883/

相关文章:

c# - mysql 服务器与 Visual Studio 2010 .net 集成

c# - 为什么要在这里寻找 VsixUtil.exe?

visual-studio - 无法安装通用 Windows 应用程序更新工具

c# - 级联下拉列表 - ASP.NET MVC

C# MongoDB : How can I map a domain object (BsonIgnoreIfDefault needed on Id property)

c# - 是否有 C# 不区分大小写的等于运算符?

c# - 用户时间和服务器时间不同的时区问题

c# - 使用 C# 通过求和或精确的单个值从列表中获取最接近的值

c# - C# 中的 Web 服务和属性

c# - 在 Internet Explorer 中打开新的模式对话框窗口时会引发哪个事件?