VS插件开发获取当前编译启动项目
2015-06-09 15:35
288 查看
在设计项目调试环境的时候,每次只能从Solution对象中获取当前激活的项目(可能是多个,当前选中的),操作如下
EnvDTE.DTE dteObject;
Array projs = (Array)dteObject.ActiveSolutionProjects;
通过这种方法来获取当前选中的项目列表。但是这个并不能达到我的目的,我希望的是获取当前启动的项目,也就是F5启动起来的那个项目,没有办法
这个方面的资料真的很少,于是登陆微软的官网MSDN,在里面搜索"EnvDTE 获取启动项目",终于让我如愿以偿了,呵呵
解决方案如下,需要从开发环境对象中获取解决方案,解决方案中再获取编译对象即可,如下代码是获取当前编译,调试项目的代码:
EnvDTE.Project GetStartupBuildProject(EnvDTE dteObject)
{
Solution sln = dteObject.Solution;
Array startsProjects = sln.SolutionBuild.StartupProjects as Array;
if(startsProjects == null || startsProjects.Length < 1)
return null;
//获取的是项目的UniqueName
string retProjName = startsProjects.GetValue(0) as string;
if(retProjName == null)
return null;
foreach(EnvDTE.Project proj in sln.Projects)
{
if(proj == null)
continue;
//通过项目的唯一名称来判断是否是同一个项目
if(proj.UniqueName == retProjName)
return proj;
}
return null;
}
EnvDTE.DTE dteObject;
Array projs = (Array)dteObject.ActiveSolutionProjects;
通过这种方法来获取当前选中的项目列表。但是这个并不能达到我的目的,我希望的是获取当前启动的项目,也就是F5启动起来的那个项目,没有办法
这个方面的资料真的很少,于是登陆微软的官网MSDN,在里面搜索"EnvDTE 获取启动项目",终于让我如愿以偿了,呵呵
解决方案如下,需要从开发环境对象中获取解决方案,解决方案中再获取编译对象即可,如下代码是获取当前编译,调试项目的代码:
EnvDTE.Project GetStartupBuildProject(EnvDTE dteObject)
{
Solution sln = dteObject.Solution;
Array startsProjects = sln.SolutionBuild.StartupProjects as Array;
if(startsProjects == null || startsProjects.Length < 1)
return null;
//获取的是项目的UniqueName
string retProjName = startsProjects.GetValue(0) as string;
if(retProjName == null)
return null;
foreach(EnvDTE.Project proj in sln.Projects)
{
if(proj == null)
continue;
//通过项目的唯一名称来判断是否是同一个项目
if(proj.UniqueName == retProjName)
return proj;
}
return null;
}
相关文章推荐
- PERL语言入门:第四章:子程序(函数):习题2:求1-100总和
- java基础复习之六:数据类型的转换
- 剑指offer之丑数
- Hybrid应用实例
- HDU-1041-Computer Transformation(规律题 && 大数题)
- c++ --> const关键字总结
- spring中的命名空间
- 那些让你相见恨晚的Photoshop技巧
- Android 动态库死机调试方法
- poj3249Test for Job解题报告
- WPF DockPanel
- C++9.7、9.8 容器适配器----queue、stack
- 关于mongoDb
- Ubuntu配置eclipse
- 白板编程浅谈——Why, What, How
- 彻底搞懂javascript中的match, exec的区别
- android开发连接wifi addNetwork 返回-1
- 想记录自己寻路的历程
- 步步为营,分析平台设备初始化platform_device_register()
- 2015必须要看的APP源码