T4 – direktiva Assembly
V textové šabloně návrhu sady Visual Studio načte assembly
direktiva sestavení, aby kód šablony mohl používat jeho typy. Efekt je podobný přidání odkazu na sestavení v projektu sady Visual Studio.
Obecný přehled psaní textových šablon najdete v tématu Psaní textové šablony T4.
Poznámka:
Direktivu assembly
nepotřebujete v textové šabloně za běhu (předzpracované). Místo toho přidejte potřebná sestavení do odkazů projektu sady Visual Studio.
Použití direktivy assembly
Syntaxe této direktivy je následující:
<#@ assembly name="[assembly strong name|assembly file name]" #>
Název sestavení by měl být jeden z následujících názvů:
Silný název sestavení v GAC, například
System.Xml.dll
. Můžete také použít dlouhý formulář, napříkladname="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
. Další informace najdete na webu AssemblyName.Absolutní cesta k sestavení
Pomocí syntaxe můžete
$(variableName)
odkazovat na proměnné sady Visual Studio, jako$(SolutionDir)
%VariableName%
jsou a odkazovat na proměnné prostředí. Příklad:
<#@ assembly name="$(SolutionDir)\MyProject\bin\Debug\SomeLibrary.Dll" #>
Direktiva assembly nemá žádný účinek na předzpracované textové šablony. Místo toho do části Reference projektu sady Visual Studio uveďte potřebné odkazy. Další informace najdete v tématu Generování textu za běhu pomocí textových šablon T4.
Standardní sestavení
Následující sestavení se načítají automaticky, takže pro ně nemusíte psát direktivy sestavení:
Microsoft.VisualStudio.TextTemplating.1*.dll
System.dll
WindowsBase.dll
Pokud používáte vlastní direktivu, může procesor direktiv načíst další sestavení. Pokud například píšete šablony pro jazyk domény (DSL), nemusíte psát direktivy sestavení pro následující sestavení:
Microsoft.VisualStudio.Modeling.Sdk.1*.dll
Microsoft.VisualStudio.Modeling.Sdk.Diagrams.1*.dsl
Microsoft.VisualStudio.TextTemplating.Modeling.1*.dll
Sestavení obsahující váš kód DSL
Použití vlastností projektu v nástroji MSBuild i v sadě Visual Studio
Makra sady Visual Studio, jako je $(SolutionDir), nefungují v nástroji MSBuild. Chcete-li transformovat šablony v sestavovacím počítači, je nutné místo toho použít vlastnosti projektu.
Úpravou souboru .csproj nebo .vbproj definujte vlastnost projektu. Tento příklad definuje vlastnost s názvem 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>
Tuto vlastnost projektu nyní můžete použít v textových šablonách, které se správně transformují jak v sadě Visual Studio, tak v nástroji MSBuild:
<#@ assembly name="$(myLibFolder)\MyLib.dll" #>