使用T4在VS2010项目中获取文件名

时间:2011-05-31 17:59:29

标签: visual-studio-2010 t4

我正在尝试将T4与VS2010一起使用来枚举项目中的文件,对具有特定扩展名的文件运行自定义工具,然后将生成的文件添加到解决方案中。但是,我似乎无法弄清楚如何在我的项目中获取文件的名称。我查看了EnvDTE,找不到能够做到这一点的功能。我的方法是否有意义?我试图使用T4更像VS2010脚本工具而不是其他任何东西。

1 个答案:

答案 0 :(得分:2)

祝你好运。不,真的。 EnvDTE不是最友好的界面。

长话短说,从解决方案EnvDTE.Solution开始,您必须在解决方案中迭代项目(Solution.Projects),然后枚举(递归!)项目中的ProjectItems( Project.ProjectItems)并获取每个ProjectItem(ProjectItem.FileNames)的文件名。

这涉及许多绊脚石。 ProjectItems可以表示Project中的References节点,文件夹或其他实际上没有与之关联的文件的项目。此外,单个ProjectItem可能有多个文件(想想class.cs和class.designer.cs)。而且,最重要的是,DTE只是一个糟糕的COM包装器,感觉就像一个。