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 formuname="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ı myLibFolder
bir ö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" #>