我正在尝试将T4与VS2010一起使用来枚举项目中的文件,对具有特定扩展名的文件运行自定义工具,然后将生成的文件添加到解决方案中。但是,我似乎无法弄清楚如何在我的项目中获取文件的名称。我查看了EnvDTE,找不到能够做到这一点的功能。我的方法是否有意义?我试图使用T4更像VS2010脚本工具而不是其他任何东西。
答案 0 :(得分:2)
长话短说,从解决方案EnvDTE.Solution开始,您必须在解决方案中迭代项目(Solution.Projects),然后枚举(递归!)项目中的ProjectItems( Project.ProjectItems)并获取每个ProjectItem(ProjectItem.FileNames)的文件名。
这涉及许多绊脚石。 ProjectItems可以表示Project中的References节点,文件夹或其他实际上没有与之关联的文件的项目。此外,单个ProjectItem可能有多个文件(想想class.cs和class.designer.cs)。而且,最重要的是,DTE只是一个糟糕的COM包装器,感觉就像一个。