编写插件实现VS解决方案的自动编译
编写插件自动编译文件,点击按钮后调用下面的函数
- 接口一:IVsSolutionBuildManager2,源自程序集Microsoft.VisualStudio.Shell.Interop(位于 Microsoft.VisualStudio.Shell.Interop.dll)启动启动项目以指定为调试项目的解决方案
- 接口二:IVsHierarchy 与上一个接口的程序集相同,为实现项目层次结构的 Vspackage 提供层次结构管理。(可以理解为实现创建项目层次结构中的Vspackage)
Vspackage是一个软件模块,通过提供UI元素,服务,项目,编辑或设计来扩展VS IDE的软件模块。
关于DTE,这个很重要
DTE的对象,这个对象相当于于Visual Studio 的实例,可以通过操作该实例对编辑器中的内容进行控制,通过在 GetService 方法中调用 Initialize 获取 DTE 自动化对象。
DTE2 dte = (DTE2)GetService(typeof(DTE));
完整的编译方法如下:
public Project BuildStart()
{
var StartBuid = (IVsSolutionBuildManager2)Package.GetServiceAsync(typeof(SVsSolutionBuildManager)).Result;
IVsHierarchy startupProject;
StartBuid.get_StartupProject(out startupProject)