我试图使用TemplateFileManager TT包含文件(从this article引用,并且在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)));
在此集合中是一个实例,其中某些东西为空...(对象引用错误)。