Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
von Jacques Eloff
Mit der Veröffentlichung von MVC 3 Tools Update für Visual Studio 2010 wurde ein separater Projekt-Assistent für MVC-Projekte eingeführt. Der Wandel wurde von zwei Faktoren angetrieben. Erstens führen die Einführung neuer Vorlagen in MVC 3 und die Unterstützung für zusätzliche Ansichts-Engines wie Razor dazu, dass das Dialogfeld Neues Projekt in Visual Studio überlastet wird. Zweitens hatten Kunden nach Erweiterbarkeitspunkten gefragt, und der neue MVC-Projekt-Assistent würde uns die Möglichkeit bieten, auf diese Anforderungen zu reagieren.
Das Hinzufügen benutzerdefinierter Vorlagen war ein mühsamer Prozess, bei dem die Registrierung verwendet wurde, um neue Vorlagen für den MVC-Projekt-Assistenten sichtbar zu machen. Der Autor einer neuen Vorlage musste sie in eine MSI umschließen, um sicherzustellen, dass die erforderlichen Registrierungseinträge zur Installationszeit erstellt werden. Die Alternative war, eine ZIP-Datei mit der Vorlage verfügbar zu machen und den Endbenutzer die erforderlichen Registrierungseinträge manuell erstellen zu lassen.
Keiner der oben genannten Ansätze ist ideal, daher haben wir uns entschieden, einige der vorhandenen Infrastruktur von VSIX-Erweiterungen zu nutzen, um das Erstellen, Verteilen und Installieren benutzerdefinierter MVC-Vorlagen ab MVC 4 für Visual Studio 2012 zu vereinfachen. Dieser Ansatz bietet folgende Vorteile:
- Eine VSIX-Erweiterung kann mehrere Vorlagen enthalten, die verschiedene Sprachen (C# und Visual Basic) und mehrere Ansichts-Engines (ASPX und Razor) unterstützen.
- Eine VSIX-Erweiterung kann auf mehrere SKUs von Visual Studio abzielen, einschließlich Express-SKUs.
- Der Visual Studio-Katalog erleichtert die Verteilung der Erweiterung an ein breites Publikum.
- VSIX-Erweiterungen können aktualisiert werden, um das Erstellen von Korrekturen und Updates für Ihre benutzerdefinierten Vorlagen zu vereinfachen.
Voraussetzungen
- Benutzer müssen mit dem Erstellen von Projektvorlagen vertraut sein, einschließlich des erforderlichen Markups für vstemplate-Dateien usw.
- Benutzer müssen Visual Studio Professional und höher installiert haben. Express-SKUs unterstützen das Erstellen von VSIX-Projekten nicht.
- Visual Studio 2012 SDK installiert.
Beispiel
Der erste Schritt besteht darin, ein neues VSIX-Projekt mit C# oder Visual Basic zu erstellen. Wählen Sie Datei > Neues Projekt aus, klicken Sie dann im linken Bereich auf Erweiterbarkeit , und wählen Sie das VSIX-Projekt aus.
Nachdem das Projekt erstellt wurde, wird der VSIX-Designer geöffnet.
Der Designer kann verwendet werden, um einige der allgemeinen Eigenschaften der Erweiterung zu bearbeiten, die Benutzern angezeigt werden, wenn sie die Erweiterung installieren, oder um die installierten Erweiterungen in Visual Studio zu durchsuchen (Extraserweiterungen > und Updates). Wenn Sie die allgemeinen Informationen ausgefüllt haben, klicken Sie auf die Registerkarte Ziele installieren.
Diese Registerkarte wird verwendet, um die SKUs und Versionen von Visual Studio anzugeben, die von Ihrer Erweiterung unterstützt werden. Aktivieren Sie das Kontrollkästchen Diese VSIX wird für alle Benutzer installiert , um computerspezifische Installationen von VSIX zu aktivieren. Klicken Sie rechts auf die Schaltfläche Neu , um zusätzliche SKUs wie Web Developer Express (VWD) hinzuzufügen.
Wenn Sie alle Professionellen und höheren SKUs (Professional, Premium und Ultimate) unterstützen möchten, müssen Sie nur die Mindest-SKU in der Familie auswählen, Microsoft.VisualStudio.Pro. Denken Sie daran, alle Ihre Änderungen zu speichern, nachdem Sie die Installationsziele abgeschlossen haben.
Die Registerkarte Assets wird verwendet, um alle Ihre Inhaltsdateien dem VSIX hinzuzufügen. Da MVC benutzerdefinierte Metadaten erfordert, bearbeiten Sie den unformatierten XML-Code der VSIX-Manifestdatei, anstatt die Registerkarte Assets zum Hinzufügen von Inhalten zu verwenden. Fügen Sie zunächst den Vorlageninhalt zum VSIX-Projekt hinzu. Es ist wichtig, dass die Struktur des Ordners und der Inhalt das Layout des Projekts Spiegel. Das folgende Beispiel enthält vier Projektvorlagen, die von der MVC-Projektvorlage Basic abgeleitet wurden. Stellen Sie sicher, dass alle Dateien ihrer Projektvorlage (alles unter dem Ordner ProjectTemplates) der Inhaltselementgruppe in der VSIX-Projektdatei hinzugefügt werden und dass jedes Element die Metadaten "CopyToOutputDirectory " und "IncludeInVsix " enthält, wie im folgenden Beispiel gezeigt.
<Content Include="ProjectTemplates\MyMvcWebApplicationProjectTemplate.csaspx\BasicWeb.config">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<IncludeInVSIX>true</IncludeInVSIX>
</Inhalt>
Andernfalls versucht die IDE, den Inhalt der Vorlage zu kompilieren, wenn Sie den VSIX erstellen, und es wird wahrscheinlich ein Fehler angezeigt. Codedateien in Vorlagen enthalten häufig spezielle Vorlagenparameter , die von Visual Studio verwendet werden, wenn die Projektvorlage instanziiert wird und daher nicht in der IDE kompiliert werden kann.
Schließen Sie den VSIX-Designer, klicken Sie dann mit der rechten Maustaste auf die Datei source.extension.manifest in Projektmappen-Explorer, und wählen Sie Öffnen mit aus, und wählen Sie die Option XML (Text-Editor) aus.
Erstellen Sie ein <Assets-Element> , und fügen Sie ein <Asset-Element> für jede Datei hinzu, die im VSIX enthalten sein muss. Das Type-Attribut jedes <Asset-Elements> muss auf Microsoft.VisualStudio.Mvc.Template festgelegt werden. Dies ist ein benutzerdefinierter Namespace, den nur der MVC-Projekt-Assistent versteht. Weitere Informationen zur Struktur und dem Layout der Manifestdatei finden Sie in der VSIX 2.0-Schemadokumentation.
Das hinzufügen der Dateien zum VSIX reicht nicht aus, um die Vorlagen beim MVC-Assistenten zu registrieren. Sie müssen dem MVC-Assistenten Informationen wie Vorlagenname, Beschreibung, unterstützte Ansichts-Engines und Programmiersprache bereitstellen. Diese Informationen werden in benutzerdefinierten Attributen übertragen, die dem <Asset-Element> für jede vstemplate-Datei zugeordnet sind.
<Asset d:VsixSubPath="ProjectTemplates\MyMvcWebApplicationProjectTemplate.csaspx"
Type="Microsoft.VisualStudio.Mvc.Template"
d:Source="File"
Path="ProjectTemplates\MyMvcWebApplicationProjectTemplate.csaspx\BasicMvcWebApplicationProjectTemplate.11.csaspx.vstemplate"
ProjectType="MVC"
Language="C#"
ViewEngine="Aspx"
TemplateId="MyMvcApplication"
Title="Custom Basic Web Application"
Description="Eine benutzerdefinierte Vorlage, die von einer Basic MVC-Webanwendung (Razor) abgeleitet ist"
Version="4.0"/>
Im Folgenden finden Sie eine Erläuterung der benutzerdefinierten Attribute, die vorhanden sein müssen:
- ProjectType muss auf MVC festgelegt werden.
- Sprache gibt die von der Vorlage unterstützte Entwicklungssprache an. Gültige Werte sind C# oder VB.
- ViewEngine gibt die von der Vorlage unterstützte Ansichts-Engine an, z. B. Aspx oder Razor. Sie können einen benutzerdefinierten Wert für dieses Feld angeben.
- TemplateId wird zum Gruppieren der Vorlagen verwendet. Wenn der Wert mit einer vorhandenen Vorlagen-ID übereinstimmt, werden Vorlagen überschrieben, die zuvor beim MVC-Assistenten registriert wurden.
- Title gibt die kurze Beschreibung an, die im MVC-Assistenten unter jeder Projektvorlage angezeigt wird.
- Description gibt eine ausführlichere Beschreibung der Vorlage an.
Nachdem Sie alle Dateien zum Manifest hinzugefügt und gespeichert haben, werden Sie feststellen, dass auf der Registerkarte Assets im Designer alle Dateien, aber nicht die benutzerdefinierten Attribute angezeigt werden, die Sie den <Asset-Elementen> für die vstemplate-Dateien hinzugefügt haben.
Jetzt müssen Sie nur noch das VSIX-Projekt kompilieren und installieren.
Stellen Sie sicher, dass alle Instanzen von Visual Studio auf dem Computer geschlossen sind, auf dem Sie die VSIX-Erweiterung testen möchten. Visual Studio sucht während des Startvorgangs nach neuen Erweiterungen. Wenn also die IDE während der Installation eines VSIX geöffnet ist, müssen Sie Visual Studio neu starten. Doppelklicken Sie in Explorer auf die VSIX-Datei, um das VSIX-Installationsprogramm zu starten, klicken Sie auf Installieren, und starten Sie Visual Studio.
Wählen Sie im Menü Extras > Erweiterungen und Updates aus, um zu bestätigen, dass Ihre Erweiterung installiert wurde. Wenn das VSIX-Installationsprogramm während der Installation der Erweiterung Fehler gemeldet hat, können Sie das VSIX-Installationsprotokoll anzeigen, um weitere Informationen zu erhalten. Das Protokoll wird normalerweise im Ordner %temp% des Benutzers erstellt, der die Erweiterung installiert hat, z. B. C:\Users\Bob\AppData\Local\Temp.
Nach dem Schließen des Fensters können Sie ein MVC 4-Projekt erstellen, um zu sehen, ob Ihre neuen Vorlagen im MVC-Assistenten angezeigt werden.
Einschränkungen
- Der MVC-Assistent unterstützt keine lokalisierten benutzerdefinierten Vorlagen.
- Der Assistent meldet keine Fehler, wenn benutzerdefinierte Vorlagen nicht gefunden werden können. Wenn eines der erforderlichen benutzerdefinierten Attribute fehlt, wird die Vorlage einfach aus dem Assistenten ausgeschlossen.