如何在T4模板中使用自定义指令?

时间:2012-04-17 02:23:06

标签: visual-studio-2008 .net-3.5 c#-3.0 t4

我在一个项目中创建了一个自定义T4指令处理器,现在我想在另一个项目中使用T4模板中的处理器,但是我收到以下错误:

  

指令的类型“MyNamespace.MyCustomDirectiveProcessor”   名为“MyCustomDirectiveProcessor”的处理器不是派生自的   Microsoft.VisualStudio.TextTemplating.DirectiveProcessor。该   转型不会进行。

我的指令处理器类定义如下:

using Microsoft.VisualStudio.TextTemplating;

namespace MyNamespace
{
    public class MyCustomDirectiveProcessor : DirectiveProcessor
    {
        // etc.
    }
}

我需要做些什么来使自定义指令工作?我已遵循this documentation中的指南将指令处理器添加到注册表中。我在项目的后期构建步骤中这样做,我已经定义了我的指令处理器类,并且我已经确保构建了项目并添加了注册表项。

1 个答案:

答案 0 :(得分:1)

经过一番挖掘,我发现了这个问题。事实证明我使用的是旧版本的 Microsoft.VisualStudio.TextTemplating.dll 。我的版本是 8.1.0.0 ,如“添加引用”对话框中所列。

安装Visual Studio 2008 SDK 1.0后,我看到我有一个新版本: 9.0.0.0 。当我构建链接到新版本.DLL的项目时,一切都在顺利进行。

希望这能帮助VS2008上的一些可怜的迷失灵魂!