我正在尝试为Visual Studio编写一个加载项,除其他外,需要跟踪Visual Studio解决方案中的每个文件.我知道我需要订阅什么事件(当打开解决方案时,在其中添加/删除/编辑文件时,项目中的文件相同等),但我不明白如何实际获取文件列表从任何一个.
我最近安装了CodeRush并且一直在使用DXCore框架.我对插件的方法感到非常满意,但我仍然没有看到一个明显的方法来获取解决方案中的文件列表.
总结一下:如何通过Visual Studio SDK 或 DXCore获得解决方案及其项目中可靠的文件列表?
在Visual Studio扩展中,我想获取所有项目及其名称:
var service = (DTE) Package.GetGlobalService(typeof (SDTE));
var projects = service.Solution.Projects;
foreach (Project project in projects)
//....
Run Code Online (Sandbox Code Playgroud)
除了一个小问题外,这种方法很好用,很整洁:项目变量实际上返回了确切的项目数。但是,如果项目的全名位于解决方案的文件夹中,则可能为EMPTY。(我的意思是当项目合并在解决方案的文件夹中时解决方案的结构)
如何正确地获得这些项目?