0

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

MyNamespace.MyCustomDirectiveProcessor名为 ' ' 的指令处理器的类型 ' 'MyCustomDirectiveProcessor并非派生自 Microsoft.VisualStudio.TextTemplating.DirectiveProcessor。转换将不会运行。

我的指令处理器类是这样定义的:

using Microsoft.VisualStudio.TextTemplating;

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

我需要做什么才能使自定义指令起作用?我已按照本文档中的指南将指令处理器添加到注册表。我在项目的后期构建步骤中这样做,我已经定义了我的指令处理器类,并且我确保项目已构建并添加了注册表项。

4

1 回答 1

1

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

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

希望这可以帮助一些仍然在 VS2008 上迷失的可怜灵魂!

于 2012-04-25T13:53:58.880 回答