我试图使用 TemplateFileManager TT 包含文件(引用自本文,并且在 Tangible 的模板库中可用),以便我可以从 1 个 T4 模板输出多个文件,但我在默认代码中不断收到错误消息。出于某种原因,此方法返回 null,我无法轻松调试它以了解原因。
public static string GetProjectItemFullPath(EnvDTE.ProjectItem item)
{
return item.Properties.Item("FullPath").Value.ToString();
}
有人知道为什么吗?我确实从他们的模板下载工具下载了最新版本(2.1)。我的用法非常简单;我试图写出 2 个 CSV 文件。我有这个声明:
<#@ output extension=".csv" #>
<#@ include file="TemplateFileManager.ttinclude" #>
在顶部我创建了 TemplateManager:
var manager = TemplateFileManager.Create(this);
当我想分裂时,我有这个:
manager.StartNewFile("Documentation.Features.csv");
最后:
manager.Process();
我可以通过调试知道问题出在 CleanupTemplatePlaceholders 例程上:
var dirtyHelperTemplates = VSHelper.GetAllSolutionItems(this.dte)
.Where(p => delta.Contains(VSHelper.GetProjectItemFullPath(p)));
在此集合中是一个实例,其中某些内容为空......(对象引用错误)。