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 に答える