0

我试图使用 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)));

在此集合中是一个实例,其中某些内容为空......(对象引用错误)。

4

0 回答 0