Vorlagen mit mehreren IWizard-Implementierungen
Aktualisiert: November 2007
In den Visual Studio-Versionen vor Visual Studio 2008 wurde nur eine einzelne IWizard-Implementierung durch Vorlagen unterstützt. Mit Visual Studio 2008 wird ein neues Feature eingeführt, das "Verketten", wodurch eine einzelne Vorlage mehrere getrennte IWizard-Implementierungen haben kann. Diese Implementierungen werden nacheinander aufgerufen, sodass Sie Vorlagen erstellen können, die eine umfassendere und flexiblere Funktionalität haben.
Implementierungsdetails
Ein durch Microsoft implementierter VsTemplate-Assistent wird aufgerufen, um durch Lesen der VSTEMPLATE-Datei eine Vorlage zu verarbeiten. In einer VsTemplate können eine oder mehrere Assemblys aufgeführt sein, die über eine IWizard-Implementierung verfügen, die aufgerufen wird, da sie an der Verarbeitung der Vorlage beteiligt ist. Um die Vorteile der Verkettung nutzen zu können, müssen alle Assistenten in der XML-Datei der Vorlage in der Reihenfolge aufgeführt sein, in der sie aufgerufen werden sollen.
Ein Wörterbuchobjekt kann als Ersetzungsliste für Parameter fungieren, indem es einer Vorlage die Übergabe von Parametern an eine IWizard-Implementierung und gleichzeitig einer IWizard-Implementierung das Übergeben von Parametern an eine andere Implementierung ermöglicht. Ein Verweis auf das Wörterbuch, das an RunStarted übergeben wird, kann von IWizard gespeichert werden. Alle Änderungen, die von IWizard in Benachrichtigungsrückrufen vorgenommen wurden, werden beibehalten.
Ersetzungsparameter (z. B. $MyVariable) weisen einen globalen Gültigkeitsbereich auf. Der Zugriff darauf kann von jedem IWizard erfolgen. Achten Sie darauf, den Ersetzungsvariablen eindeutige Namen zu geben, damit sie nicht versehentlich von anderen IWizards verwendet oder geändert werden. Es wird empfohlen, dass Sie alle Ersetzungsparameter für die Assistenten dokumentieren, damit andere Benutzer sehen, wozu sie verwendet werden.
IWizard enthält eine boolesche Eigenschaft namens ShouldAddItem. Mit dieser Eigenschaft wird ein Assistent darüber benachrichtigt, ob er die angegebenen Dateien hinzufügen soll. Ist ShouldAddItem auf false festgelegt, wird das Element von keinem der Assistenten geladen, die auf den aktuellen Assistenten folgen.