我在一个项目中创建了一个自定义T4指令处理器,现在我想在另一个项目中使用T4模板中的处理器,但是我收到以下错误:
指令的类型“
MyNamespace.MyCustomDirectiveProcessor
” 名为“MyCustomDirectiveProcessor
”的处理器不是派生自的Microsoft.VisualStudio.TextTemplating.DirectiveProcessor
。该 转型不会进行。
我的指令处理器类定义如下:
using Microsoft.VisualStudio.TextTemplating;
namespace MyNamespace
{
public class MyCustomDirectiveProcessor : DirectiveProcessor
{
// etc.
}
}
我需要做些什么来使自定义指令工作?我已遵循this documentation中的指南将指令处理器添加到注册表中。我在项目的后期构建步骤中这样做,我已经定义了我的指令处理器类,并且我已经确保构建了项目并添加了注册表项。
答案 0 :(得分:1)
经过一番挖掘,我发现了这个问题。事实证明我使用的是旧版本的 Microsoft.VisualStudio.TextTemplating.dll 。我的版本是 8.1.0.0 ,如“添加引用”对话框中所列。
安装Visual Studio 2008 SDK 1.0后,我看到我有一个新版本: 9.0.0.0 。当我构建链接到新版本.DLL的项目时,一切都在顺利进行。
希望这能帮助VS2008上的一些可怜的迷失灵魂!