Aracılığıyla paylaş


T4 Derleme Yönergesi

Visual Studio tasarım zamanı metin şablonunda assembly yönergesi, şablon kodunuzun türlerini kullanabilmesi için bir derleme yükler. Bu etki, Visual Studio projesine derleme başvurusu eklemeye benzer.

Metin şablonları yazmaya genel bir genel bakış için bkz . T4 Metin Şablonu Yazma.

Not

Bir çalışma zamanı (önceden işlenmiş) metin şablonunda yönergesine assembly ihtiyacınız yoktur. Bunun yerine, Visual Studio projenizin Başvuruları'na gerekli derlemeleri ekleyin.

Derleme Yönergesini Kullanma

Yönergenin sözdizimi aşağıdaki gibidir:

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

Derleme adı aşağıdakilerden biri olmalıdır:

  • GAC'deki bir derlemenin tanımlayıcı adı, örneğin System.Xml.dll. Gibi uzun formu name="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"da kullanabilirsiniz. Daha fazla bilgi için bkz. AssemblyName.

  • Derlemenin mutlak yolu

    gibi Visual Studio değişkenlerine $(variableName) başvurmak ve %VariableName% ortam değişkenlerine $(SolutionDir)başvurmak için söz dizimini kullanabilirsiniz. Örneğin:

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

Derleme yönergesinin önceden işlenmiş metin şablonu üzerinde etkisi yoktur. Bunun yerine, Visual Studio projenizin Başvurular bölümüne gerekli başvuruları ekleyin. Daha fazla bilgi için bkz . T4 Metin Şablonları ile Çalışma Zamanı Metin Oluşturma.

Standart Derlemeler

Aşağıdaki derlemeler otomatik olarak yüklenir, böylece onlar için derleme yönergelerini yazmanıza gerek yoktur:

  • Microsoft.VisualStudio.TextTemplating.1*.dll

  • System.dll

  • WindowsBase.dll

    Özel bir yönerge kullanırsanız, yönerge işlemcisi ek derlemeler yükleyebilir. Örneğin, etki alanına özgü dil (DSL) için şablonlar yazarsanız, aşağıdaki derlemeler için derleme yönergeleri yazmak gerekmez:

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

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

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

  • DSL'nizi içeren derleme.

HEM MSBuild hem de Visual Studio'da proje özelliklerini kullanma

$(SolutionDir) gibi Visual Studio makroları MSBuild'de çalışmaz. Şablonları yapı makinenizde dönüştürmek isterseniz, bunun yerine proje özelliklerini kullanmanız gerekir.

Proje özelliği tanımlamak için .csproj veya .vbproj dosyanızı düzenleyin. Bu örnek adlı myLibFolderbir özelliği tanımlar:

<!-- 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>

Artık proje özelliğinizi metin şablonlarında kullanabilirsiniz, böylece hem Visual Studio hem de MSBuild içinde doğru dönüştürme yapılır:

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

Ayrıca bkz.