2010-09-24 60 views
2

我正在创建一个Visual Studio添加项,将文件添加到打开的当前项目中。如何检测当前打开的内容?因为我需要检索文件夹/文件位置。在Visual Studio中检测打开的项目

+0

您将如何辨别添加到时有多个项目的解决方案是开放的什么项目? – 2010-09-24 21:46:29

+0

这是一个很好的问题,也许我应该着眼于在解决方案资源管理器中右键单击某个项目时创建上下文菜单项,并从那里生成文件。 – 2010-09-24 21:50:16

回答

2

您可以使用下面的代码抢在溶液中的所有项目:

private DTE2 dte2; 

public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom) 
{ 
    dte2 = (DTE2)application; 
    var events = (Events2)dte2.Events; 
    solutionEvents = events.SolutionEvents; 

    solutionEvents.Opened += OnSolutionOpened; 
} 

private void OnSolutionOpened() 
{ 
    Projects projects = dte2.Solution.Projects; 

    foreach (Project project in projects) 
    { 
     ProcessProject(project); 
    } 
} 

private void ProcessProject(Project project) 
{ 
    string directoryName = Path.GetDirectoryName(project.FileName); 
    string fileName = Path.GetFileName(project.FileName); 

    if (directoryName == null || fileName == null) 
    { 
     return; 
    } 

    var directory = new DirectoryInfo(directoryName); 
    var fileInfo = new FileInfo(fileName); 

    //do work 
} 
相关问题