Udostępnij za pośrednictwem


Dyrektywa T4 dotycząca zestawu

W szablonie tekstowym czasu projektowania programu Visual Studio dyrektywa ładuje zestaw, assembly aby kod szablonu mógł używać jego typów. Efekt jest podobny do dodawania odwołania do zestawu w projekcie programu Visual Studio.

Aby zapoznać się z ogólnym omówieniem pisania szablonów tekstu, zobacz Pisanie szablonu tekstowego T4.

Uwaga

Nie potrzebujesz assembly dyrektywy w szablonie tekstowym w czasie wykonywania (wstępnie przetworzonym). Zamiast tego dodaj niezbędne zestawy do odwołań projektu programu Visual Studio.

Używanie dyrektywy Assembly

Składnia tej dyrektywy jest następująca:

<#@ assembly name="[assembly strong name|assembly file name]" #>

Nazwa zestawu powinna być jedną z następujących:

  • Silna nazwa zestawu w GAC, na przykład System.Xml.dll. Można również użyć długiej formy, takiej jak name="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089". W celu uzyskania więcej informacji, zobacz następujący temat: AssemblyName.

  • Bezwzględna ścieżka zestawu

    Składnię $(variableName) można używać do odwoływania się do zmiennych programu Visual Studio, takich jak $(SolutionDir), oraz %VariableName% do odwoływania się do zmiennych środowiskowych. Na przykład:

<#@ assembly name="$(SolutionDir)\MyProject\bin\Debug\SomeLibrary.Dll" #>

Dyrektywa zestawu nie ma wpływu na przetworzony wstępnie szablon tekstowy. Zamiast tego dołącz niezbędne odwołania w sekcji Odwołania w projekcie programu Visual Studio. Aby uzyskać więcej informacji, zobacz Generowanie tekstu w czasie wykonywania przy użyciu szablonów tekstu T4.

Standardowe zestawy

Następujące zestawy są ładowane automatycznie, aby nie trzeba było pisać dla nich dyrektyw zestawu:

  • Microsoft.VisualStudio.TextTemplating.1*.dll

  • System.dll

  • WindowsBase.dll

    Jeśli używasz niestandardowej dyrektywy, procesor dyrektywy może załadować dodatkowe zestawy. Na przykład jeśli piszesz szablony dla języka specyficznego dla domeny (domain-specific language — DSL), nie musisz pisać dyrektyw zestawu dla następujących zestawów:

  • Microsoft.VisualStudio.Modeling.Sdk.1*.dll

  • Microsoft.VisualStudio.Modeling.Sdk.Diagrams.1*.dsl

  • Microsoft.VisualStudio.TextTemplating.Modeling.1*.dll

  • Zestaw zawierający DSL.

Używanie właściwości projektu zarówno w programie MSBuild, jak i programie Visual Studio

Makra programu Visual Studio, takie jak $(SolutionDir), nie działają w programie MSBuild. Aby przekształcić szablony w komputerze kompilacji, musisz użyć właściwości projektu.

Wyedytuj plik .csproj lub .vbproj, aby zdefiniować właściwość projektu. W tym przykładzie zdefiniowano właściwość o nazwie myLibFolder:

<!-- Define a project property, myLibFolder: -->
<PropertyGroup>
    <myLibFolder>$(MSBuildProjectDirectory)\..\libs</myLibFolder>
</PropertyGroup>

<!-- Tell the MSBuild T4 task to make the property available: -->
<ItemGroup>
    <T4ParameterValues Include="myLibFolder">
      <Value>$(myLibFolder)</Value>
    </T4ParameterValues>
  </ItemGroup>

Teraz można używać właściwości projektu w szablonach tekstowych, które są prawidłowo przekształcane w Visual Studio i MSBuild:

<#@ assembly name="$(myLibFolder)\MyLib.dll" #>

Zobacz też