T4模板(Microsoft.VisualStudio.TextTemplating.14.0) - 如何在VS2015中使用自定义实用程序方法?

时间:2016-01-20 22:38:28

标签: c# visual-studio visual-studio-2015 t4

我已经看到很多与此主题相关的问题,但似乎没有一个问题适用于我的测试项目。我正在使用VS2015和Microsoft.VisualStudio.TextTemplating.14.0。我遵循了Pluralsight的教程,即Microsoft.VisualStudio.TextTemplating.10.0。我不确定这会产生巨大的影响。 Considor我有一个带有2个项目的解决方案,一个是包含简单TextTransformation方法的类库:

using Microsoft.VisualStudio.TextTemplating;
using System;
using System.Globalization;
using System.Threading;

namespace CustomDataGenerator
{
    public class CustomDataMethods : TextTransformation
    {
        public string ToTitleCase(string input)
        {
            TextInfo ti = Thread.CurrentThread.CurrentCulture.TextInfo;
            return ti.ToTitleCase(input.ToLower());
        }
        public override string TransformText()
        {
            throw new NotImplementedException();
        }
    }
}

另一个是控制台应用程序。两个项目都参考:

  

Microsoft.VisualStudio.TextTemplating.14.0

并且控制台应用程序引用了类库项目。

  

CustomDataGenerator

我向控制台应用程序添加了一个Text模板,如下所示:

<#@ template debug="false" hostspecific="false" language="C#" inherits="CustomDataGenerator.CustomDataMethods" #>
<#@ output extension=".txt" #>
<#@ assembly name="$(TargetDir)CustomDataGenerator.dll" #>
    <#= ToTitleCase("HELLO") #>

我构建了程序集以确保它存在。这是我机器上的路径:

  

C:\用户\ Todd.MANCHESTERVILLE \文件\ VSTesting \ NewT4Test \ NewT4Test \ BIN \调试\ CustomDataGenerator.dll

这是文本模板生成的错误。:

  

错误编译转换:元数据文件&#39; C:\ Users \ Todd.MANCHESTERVILLE \ Documents \ VSTesting \ NewT4Test \ NewT4Test \ bin \ Debug \ CustomDataGenerator.dll&#39;无法找到NewT​​4Test C:\ Users \ Todd.MANCHESTERVILLE \ Documents \ VSTesting \ NewT4Test \ NewT4Test \ TextTemplate1.tt 1

以下是我的全部小样本:Git Repo

我似乎无法弄清楚出了什么问题。我无法在图书馆中引用该课程。我已经验证了装配存在。谢谢你的帮助!

编辑:我修正了拼写错误并添加了这一行:

  

&lt;#= ToTitleCase(&#34; HELLO&#34;)#&gt;

显示自定义实用程序方法有效。我更新了Git Repo

一切都暂时在宇宙中!除了我的拼写。

0 个答案:

没有答案