技术开发 频道

VS.NET集成环境插件开发指南之操纵VS开发环境

2、 操纵解决方案及其项目文档

l 获取当前被选中的项目

下面代码演示了鼠标点击一个项目,或项目中的子项时,如何得到该项目对象

public Project GetSelectedProject() { Project project = null; //从被选中对象中获取工程对象 EnvDTE.SelectedItem item = Application.SelectedItems.Item(1); if(item.Project != null) {//被选中的就是项目本生 project = item.Project; } else {//被选中的是项目下的子项 project = item.ProjectItem.ProjectItems.ContainingProject; } return project; }

·获取当前项目的所在目录

private string GetSelectedProjectPath() { string path = ""; //获取被选中的工程 Project project = GetSelectedProject(); if(project != null) { //全名包括*.csproj这样的文件命 path = project.FullName; } //去掉工程的文件名 path = Path.GetDirectoryName(path); return path; }

·将文件加入工程中

//获取被选中的工程 Project project = this.GetSelectedProject(); //将文件夹下的文件加入工程 project.ProjectItems.AddFromDirectory(sdir); //将单个文件加入工程 project.ProjectItems.AddFromFile(nfile);

·向项目中加入程序集引用

using VSLangProj; private void AddReference(string assembly) { Project project = GetSelectedProject(); VSProject vsproject = null; if (project.Kind == PrjKind.prjKindCSharpProject) { //工程类型为C#工程,将project的Object成员转换为VSProject对象 vsproject = project.Object as VSProject; } if(vsproject != null) { //获取C#工程的引用集 VSLangProj.References refers = vsproject.References; if(refers != null) { //将程序集引用添加到工程中 refers.Add(assembly); } } }
0
相关文章