Neues bei Codegenerierung und Textvorlagen

Visual Studio-Textvorlagen ermöglichen es Ihnen, zur Laufzeit Code und Ressourcen für die Anwendung sowie beliebige Textdateien oder Dokumente zu generieren.

Neuerungen in Service Pack 1 (SP1)

Sie erhalten die folgenden Funktionen, indem Sie SP1 für Visual Studio 2010 installieren.

  • Debuggen von Assemblys
    Wenn die Textvorlage eine Assembly lädt, die Sie debuggen, können Sie die Assembly problemlos neu erstellen.

    In älteren Visual Studio-Versionen als SP1 gestaltet es sich manchmal schwierig, eine Assembly, die vor kurzem von einer Vorlage geladen wurde, neu zu erstellen, da die Assembly von der Vorlage gesperrt wird. In SP1 lädt die Vorlage eine Kopie der Assembly, damit die ursprüngliche Assembly nicht gesperrt wird. Wenn Sie die Assembly neu erstellen, wird bei der nächsten Ausführung der Vorlage erneut eine neue Kopie der Assembly geladen. Weitere Informationen finden Sie unter T4-Assemblydirektive.

  • Vererbung zwischen Textvorlagen
    Sie können eine Textvorlage definieren, die ein Framework von Textblöcken enthält, das bei mehreren Varianten verwendet wird. Die Variantenvorlagen können von der allgemeinen Vorlage erben. Beispiele und weitere Informationen finden Sie unter T4-Vorlagendirektive und Generieren von Text zur Laufzeit mithilfe von vorverarbeiteten T4-Textvorlagen.

Neue und erweiterte Funktionen in Visual Studio 2010

Feature

Thema

Vorverarbeitete Textvorlagen: Ermöglichen in jeder Anwendung die einfache Generierung von Textdateien zur Laufzeit.

Generieren von Text zur Laufzeit mithilfe von vorverarbeiteten T4-Textvorlagen

Buildintegration: Stellt sicher, dass die generierten Programmdateien den neuesten Informationen in den Quelldateien oder dem Modell entsprechen. Diese Funktion ist verfügbar, wenn Sie Domänenspezifische Sprachtools installieren.

Codegenerierung in einem Buildprozess

Texttransformationsaufgaben für MSBuild: Ermöglichen das Transformieren bestimmter Dateien in einem Projekt, wenn das Projekt in Visual Studio über die Befehlszeile erstellt wird.

Wenn Sie mit Skripts arbeiten, in denen "TextTransform.exe" aufgerufen wird, ist diese Methode möglicherweise flexibler.

Codegenerierung in einem Buildprozess

Unterstützung für Visual Studio-ModelBus: Bietet eine Standardmethode für den Zugriff auf mehrere Modelle in einer Textvorlage.

Microsoft.VisualStudio.TextTemplating.Modeling.ModelBusEnabledTextTransformation

Trennung von DSLs und Modellen: Obwohl die beiden Funktionen ursprünglich zur gleichen Zeit eingeführt wurden, benötigen Sie zur Verwendung von Textvorlagen keine domänenspezifische Sprache. Textvorlagen und Dateigenerierung sind ein integrierter Bestandteil von Visual Studio.

Generieren von Code für eine domänenspezifische Sprache

Zugriff auf Dienstanbieter: Ist in einer Eigenschaft von ModelingTextTransform verfügbar.

Hilfsmethoden für T4-Textvorlagen

Zugriff auf Umgebung: In Textvorlagendirektiven können Sie Visual Studio-Makros wie $(ProjectDir) oder Windows-Umgebungsvariablen wie %ProgramFiles% verwenden.

T4-Textvorlagendirektiven

Änderungen bezüglich Anpassungen

Die folgenden Verbesserungen wurden vorgenommen und betreffen Sie möglicherweise, wenn Sie den Textvorlagenprozess angepasst haben.

Feature

Thema

Namespace- und Assemblyänderungen: Einige Typen wurden in die Microsoft.VisualStudio.TextTemplating.Interfaces-Assembly verschoben.

Exemplarische Vorgehensweise: Erstellen eines benutzerdefinierten Direktivenprozessors

Exemplarische Vorgehensweise: Erstellen eines benutzerdefinierten Textvorlagenhosts

Sitzungswörterbuch: Ein serialisiertes Wörterbuch, das in die Anwendungsdomäne übergeben wird, in der eine Textvorlage ausgeführt wird. Dieses Wörterbuch stellt ein Standardverfahren bereit, mit dem ein Textvorlagenhost Daten in den Textvorlagencode übergeben kann.

Exemplarische Vorgehensweise: Erstellen eines benutzerdefinierten Textvorlagenhosts

Sonstige Änderungen seit Visual Studio 2008

Assemblys, auf die in Textvorlagen verwiesen wird

Die Verweise im aktuellen Projekt dienen nicht mehr zur Assemblysuche.

Geben Sie in einer Assemblydirektive explizit den Ort der erforderlichen Assembly an.

Sie können Visual Studio-Makros wie z. B. $(ProjectDir) oder Windows-Umgebungsvariablen wie %ProgramFiles% als Teil des Assemblyorts verwenden.

Texttransformationsassemblys

Die Assemblys, auf die Sie ggf. verweisen müssen, damit Textvorlagen verwendet werden, müssen alle das Suffix "10.0" besitzen:

  • Microsoft.VisualStudio.TextTemplating.10.0.dll

  • Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll

  • Microsoft.VisualStudio.TextTemplating.Vshost.10.0.dll

  • Microsoft.VisualStudio.TextTemplating.Modeling.10.0.dll

Namespaces

Es ist kein Namespace mit dem Namen "Microsoft.VisualStudio.TextTemplating.Interfaces" vorhanden. Dies stellt eine Änderung im Vergleich zur Beta 2-Version von Visual Studio 2010 dar.

Starten des Debuggers

Um den Debugger mit einer Textvorlage zu starten, fügen Sie den Aufruf an dem Punkt ein, an dem Sie mit dem Durchlaufen der Ausführung beginnen möchten:

System.Diagnostics.Debugger.Launch();

Führen Sie den folgenden Aufruf aus, um bei nachfolgenden Haltepunkten zum Debugger zurückzukehren:

System.Diagnostics.Debugger.Break();

Standardsprachversion

Die neueste Version (4) des Compilers wird immer dazu verwendet, Textvorlagen zu kompilieren. In Visual Studio 2008 ist der Standardcompiler 2.0, doch Sie können eine höhere Version der Vorlagenprogrammiersprache angeben – z. B. <#@ template language="VBv3.5" #>. In Visual Studio 2010 wird die Versionsnummer ignoriert, und eine Warnung wird angezeigt. Wenn Sie eine Vorlage besitzen, die Sie in beiden Versionen von Visual Studio verwenden möchten, können Sie die Warnung ignorieren.

Siehe auch

Konzepte

Neues in Visual Studio 2010