您的位置:首页 > 其它

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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: