Vorlagenparameter
Wenn die Vorlage instanziiert wird, können Sie die darin erhaltenen Werte ersetzen. Verwenden Sie Vorlagenparameter, um diese Funktion einzurichten. Sie können diese Vorlagenparameter dazu verwenden, Werte wie Klassennamen und Namespaces in der Vorlage zu ersetzen. Der Vorlagen-Assistent, der im Hintergrund ausgeführt wird, wenn ein Benutzer ein neues Element oder Projekt hinzufügt, ersetzt diese Parameter.
Deklarieren und Aktivieren von Vorlagenparametern
Vorlagenparameter werden im Format $parameter$ deklariert. Zum Beispiel:
$rootnamespace$
$guid1$
$guid5$
Aktivieren der Parameterersetzung in Vorlagen
Suchen Sie in der VSTEMPLATE-Datei der Vorlage das
ProjectItem
-Element, das dem Element entspricht, für das Sie die Parameterersetzung aktivieren möchten.Legen Sie das
ReplaceParameters
-Attribut desProjectItem
-Elements auftrue
fest.Schließen Sie in der Codedatei für das Projektelement ggf. Parameter ein. Durch den folgenden Parameter wird beispielsweise angegeben, dass der Stammnamespace für den Namespace in einer Datei verwendet wird:
namespace $rootnamespace$
Reservierte Vorlagenparameter
In der folgenden Tabelle sind die reservierten Vorlagenparameter aufgelistet, die von beliebigen Vorlagen verwendet werden können:
Parameter | Beschreibung |
---|---|
clrversion | Aktuelle Version der Common Language Runtime (CLR). |
ext_* | Fügen Sie das Präfix ext_ zu einem beliebigen Parameter hinzu, um auf die Variablen der übergeordneten Vorlage zu verweisen. Beispiel: ext_safeprojectname . |
guid[1-10] | Eine GUID zum Ersetzen der Projekt-GUID in einer Projektdatei. Sie können bis zu zehn eindeutige GUIDs (z.B. guid1 ) angeben. |
itemname | Der Name der Datei, in der der Parameter verwendet wird. |
machinename | Der aktuelle Computername (z. B. Computer01). |
projectname | Der Name, der vom Benutzer bei der Erstellung des Projekts angegeben wurde. Dieser Parameter gilt nur für Projektvorlagen. |
registeredorganization | Der Registrierungsschlüsselwert aus HKLM\Software\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization. |
rootnamespace | Der Stammnamespace des aktuellen Projekts, gefolgt vom Unterordner des aktuellen Elements. Hierbei werden Schrägstriche durch Punkte ersetzt. |
defaultnamespace | Der Stammnamespace des aktuellen Projekts. |
safeitemname | Wie itemname , jedoch mit unsicheren Zeichen und Leerzeichen, die durch Unterstriche ersetzt wurden. |
safeitemrootname | Wie in safeitemname . |
safeprojectname | Der vom Benutzer beim Erstellen des Projekts angegebene Name, aus dem alle unsicheren Zeichen sowie Leerzeichen entfernt wurden. Dieser Parameter gilt nur für Projektvorlagen. |
targetframeworkversion | Aktuelle Version des .NET Frameworks des Zielsystems. |
time | Die aktuelle Uhrzeit in einem Format, das auf Windows-Benutzereinstellungen basiert. Ein Beispiel für ein Zeitformat ist TT/MM/JJJJ 00:00:00. |
specifiedsolutionname | Der Name der Projektmappe. Wenn "Projektmappe und Projekt im selben Verzeichnis platzieren" deaktiviert ist, specifiedsolutionname hat der Projektmappenname. Wenn "Projektmappenverzeichnis erstellen" nicht aktiviert ist, ist specifiedsolutionname leer. |
userdomain | Die aktuelle Benutzerdomäne. |
username | Der aktuelle Benutzername. |
webnamespace | Der Name der aktuellen Website. Dieser Parameter wird in der Webformularvorlage verwendet und gewährleistet eindeutige Klassennamen. Wenn sich die Website im Stammverzeichnis des Webservers befindet, wird dieser Vorlagenparameter in das Stammverzeichnis des Webservers aufgelöst. |
year | Das aktuelle Jahr im Format JJJJ. |
Hinweis
Bei Vorlagenparametern wird die Groß-/Kleinschreibung beachtet.
Benutzerdefinierte Vorlagenparameter
Neben den reservierten Standardvorlagenparametern, die während dem Ersetzen von Parametern verwendet werden, können Sie eigene Vorlagenparameter und -werte angeben. Weitere Informationen finden Sie unter CustomParameters-Element (Visual Studio-Vorlagen).
Beispiel: Verwenden des Projektnamens für einen Dateinamen
Sie können variable Dateinamen für Projektelemente festlegen, indem Sie einen Parameter im TargetFileName
-Attribut verwenden.
Im folgenden Beispiel wird deutlich, dass der von $projectname$
angegebene Projektname als Name für eine ausführbare Datei verwendet wird.
<TemplateContent>
<ProjectItem
ReplaceParameters="true"
TargetFileName="$projectname$.exe">
File1.exe
</ProjectItem>
...
</TemplateContent>
Beispiel: Verwenden des sicheren Projektnamens für den Namespacenamen
Verwenden Sie folgende Syntax, um den Projektnamen für den Namespace in einer C#-Klassendatei zu übernehmen:
namespace $safeprojectname$
{
public class Class1
{
public Class1()
{ }
}
}
Fügen Sie der VSTEMPLATE-Datei für die Projektvorlage das ReplaceParameters="true"
-Attribut hinzu, wenn Sie auf die Datei verweisen:
<TemplateContent>
<ProjectItem ReplaceParameters="true">
Class1.cs
</ProjectItem>
...
</TemplateContent>