Neue Projekt-Generierung: Bei der Haube zwei Komponenten
In Neue Projekt-Generierung: Bei der ersten Teil Haube sahen wir, wie das Neues Projekt Dialogfeld aufgefüllt wird. Betrachten wir Sie davon ausgehen Visual C#-Windows-Anwendungausgewählt haben, wird die Name und Speicherort OK geklickt und Textfelder.
Die Projektmappendateien generieren
Durch Auswahl einer Anwendung Visual Studio Vorlage verweist, die entsprechende VSTEMPLATE-Datei und entzippen zu öffnen und eine Vorlage zu starten, um die XML-Befehle in dieser Datei zu interpretieren. Diese Befehle erstellen Projekte und Projektelemente in einer neuen oder vorhandenen Projektmappe.
Die Vorlage, die Quelldateien entpackt Elementvorlagen vom gleichen Namen .zip-Ordner, der die VSTEMPLATE-Datei enthält. Die Vorlage kopiert diese Dateien in das neue Projekt und entsprechend passt sie an. Eine Übersicht über das Project and Item Templates finden Sie unter Visual Studio Templates.
Vorlagenparameter-Ersatz
Wenn die Vorlage eine Elementvorlage mit einem neuen Projekt kopiert und ersetzt sie durch Vorlagenparameter alle Zeichenfolgen, um die Datei anzupassen. Ein Vorlagenparameter ist ein spezielles Token, das von einem Dollarzeichen $date$ und vorangestellt, z. B.
Betrachten wir eine typische Projektelementvorlage berücksichtigen. Extrahieren Sie Program.cs, und vergewissern Sie sich unter \ Programme \ Microsoft Visual Studio 8 \ Common7 \ IDE \ ProjectTemplates- \ CSharp- \ Windows \ 1033 \ WindowsApplication.zip Ordner.
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace $safeprojectname$
{
static class Program
{
// source code deleted here for brevity
}
}
Wenn Sie ein Anwendungsprojekt der neuen Fenster erstellen, das mit dem Namen Simple, ersetzt die Vorlage den $safeprojectname$-Parameter durch den Namen des Projekts.
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace Simple
{
static class Program
{
// source code deleted here for brevity
}
}
Eine vollständige Liste der Vorlagenparameter finden Sie unter Vorlagenparameter.
Ein Listenfeld Suchen in einer VSTEMPLATE-Datei
Eine VSTEMPLATE-Datei der bloßen dieses Format aufweist Knochen
<VSTemplate Version="2.0.0" xmlns="https://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
<TemplateData>
</TemplateData>
<TemplateContent>
</TemplateContent>
</VSTemplate>
Wir betrachteten den <TemplateData> Abschnitt in Neue Projekt-Generierung: Bei der ersten Teil Haube. Die Tage in diesem Abschnitt werden verwendet, um die Darstellung des Neues Projekt Dialogfelds zu steuern.
Die Tage im <TemplateContent> Abschnitt steuern die Generierung von neuen Projekten und Projektelementen. Hier ist der <TemplateContent> Abschnitt from the cswindowsapplication.vstemplate-Datei im Verzeichnis \ Programme \ Microsoft Visual Studio 8 \ Common7 \ IDE \ ProjectTemplates- \ CSharp- \ Windows \ 1033 \ WindowsApplication.zip Ordner.
<TemplateContent>
<Project File="WindowsApplication.csproj" ReplaceParameters="true">
<ProjectItem ReplaceParameters="true"
TargetFileName="Properties\AssemblyInfo.cs">
AssemblyInfo.cs
</ProjectItem>
<ProjectItem TargetFileName="Properties\Resources.resx">
Resources.resx
</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Properties\Resources.Designer.cs">
Resources.Designer.cs
</ProjectItem>
<ProjectItem TargetFileName="Properties\Settings.settings">
Settings.settings
</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Properties\Settings.Designer.cs">
Settings.Designer.cs
</ProjectItem>
<ProjectItem ReplaceParameters="true" OpenInEditor="true">
Form1.cs
</ProjectItem>
<ProjectItem ReplaceParameters="true">
Form1.Designer.cs
</ProjectItem>
<ProjectItem ReplaceParameters="true">
Program.cs
</ProjectItem>
</Project>
</TemplateContent>
Das <Project> Tag steuert die Generierung eines Projekts und das <ProjectItem> Tag steuert die Generierung eines Projektelements. Wenn der Parameter ReplaceParameters auf true festgelegt ist, passt die Vorlage alle Vorlagenparameter in der Projektdatei oder im Element an. In diesem Fall werden alle Projektelemente, außer Settings.settings geeignet.
Der TargetFileName-Parameter gibt den Namen und den relativen Pfad der resultierenden Projektdatei oder des Elements an. Auf diese Weise können Sie eine Ordnerstruktur für das Projekt erstellen. Wenn dieses Argument nicht angegeben wird, enthält das Projektelement den gleichen Namen wie die Projektelementvorlage.
Die resultierende Ordner Fenster-Anwendungs Struktur sieht wie folgt aus:
Das erste und das nur <Project> Tag in der Vorlage lautet:
<Project File="WindowsApplication.csproj" ReplaceParameters="true">
Dadurch wird die neue Projektvorlage auf, um die Simple.csproj-Projektdatei zu erstellen, indem Sie das Vorlagenelement windowsapplication.csproj kopiert und angepasst werden.
Designer und Verweise
Sie können im Projektmappen-Explorer sehen, dass der Ordner Eigenschaften vorhanden ist und die erwarteten Dateien enthält. Aber was über die Projektverweise und Abhängigkeiten Designerdatei, z. B. in Resources.Designer.cs Resources.resx und Form1.Designer.cs auf Form1.cs? Diese sind in der Simple.csproj-Datei, wenn sie generiert wird.
Hier ist <ItemGroup> von Simple.csproj, das die Projektverweise erstellt:
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
Sie können sehen, dass diese die sechs Projektverweise werden, die im Projektmappen-Explorer angezeigt werden. Hier ist ein Abschnitt von einem anderen <ItemGroup> . Bei vielen Codezeilen sind aus Gründen der Übersichtlichkeit gelöscht. Dieser Abschnitt stellt Settings.Designer.cs-abhängiges Element auf Settings.settings:
<ItemGroup>
<Compile Include="Properties\Settings.Designer.cs">
<DependentUpon>Settings.settings</DependentUpon>
</Compile>
</ItemGroup>
Siehe auch
Konzepte
Neue Projekt-Generierung: Bei der ersten Teil Haube