T4 アセンブリ ディレクティブ
Visual Studio のデザイン時テキスト テンプレートでは、テンプレート コードでアセンブリの型を使用できるように、assembly ディレクティブによってアセンブリが読み込まれます。結果は、Visual Studio プロジェクトでアセンブリ参照を追加した場合と同様です。
テキスト テンプレートの作成方法の概要については、「T4 テキスト テンプレートの作成」を参照してください。
[!メモ]
実行時 (前処理された) テキスト テンプレートでは、assembly ディレクティブは不要です。代わりに、必要なアセンブリを Visual Studio プロジェクトの [参照] に追加します。
assembly ディレクティブの使用
ディレクティブの構文は次のとおりです。
<#@ assembly name="[assembly strong name|assembly file name]" #>
アセンブリ名は、次のいずれかであることが必要です。
GAC のアセンブリの厳密な名前 (System.Xml.dll など)。name="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" のような長い形式を使用することもできます。詳細については、「AssemblyName」を参照してください。
アセンブリの絶対パス。
$(variableName) 構文を使用して、Visual Studio または MSBuild の変数 ($(SolutionDir) など) を参照し、%VariableName% を使用して環境変数を参照できます。次に例を示します。
<#@ assembly name="$(SolutionDir)\MyProject\bin\Debug\SomeLibrary.Dll" #>
assembly ディレクティブは、前処理されたテキスト テンプレートでは無効です。必要な参照は、Visual Studio プロジェクトの [参照] セクションで追加してください。詳細については、「T4 テキスト テンプレートを使用した実行時テキスト生成」を参照してください。
標準アセンブリ
次のアセンブリは自動的に読み込まれるので、これらのアセンブリのアセンブリ ディレクティブを記述する必要はありません。
Microsoft.VisualStudio.TextTemplating.1*.dll
System.dll
WindowsBase.dll
カスタム ディレクティブを使用する場合は、ディレクティブ プロセッサによって追加のアセンブリが読み込まれます。たとえば、ドメイン固有言語 (DSL) のテンプレートを作成した場合、次のアセンブリのアセンブリ ディレクティブを記述する必要はありません。
Microsoft.VisualStudio.Modeling.Sdk.1*.dll
Microsoft.VisualStudio.Modeling.Sdk.Diagrams.1*.dsl
Microsoft.VisualStudio.TextTemplating.Modeling.1*.dll
DSL を含むアセンブリ