Packen einer Razor-Klassenbibliothek

Abgeschlossen

Eine Aufgabe, die häufig ansteht, ist das Packen von Bibliotheken zur Wiederverwendung durch andere Entwickler. Dank NuGet-Paketerstellung ist es für jeden Entwickler ein Leichtes, unabhängig vom Ort alle .NET-Verweise für seine Anwendungen abzurufen und ordnungsgemäß zu konfigurieren.

In der vorherigen Einheit haben Sie eine modale Dialogfeldkomponente erstellt und in Ihrer eigenen Anwendung verwendet. Nun möchten Sie sie in anderen Anwendungen wiederverwenden.

In dieser Lerneinheit erfahren Sie mehr über die erforderlichen Schritte zum Konfigurieren einer Razor-Klassenbibliothek als NuGet-Paket. Außerdem erfahren Sie, wie Sie die Bibliothek für die Verteilung mithilfe eines Paketrepositorydiensts wie NuGet.org oder mit GitHub packen.

Konfigurieren einer Razor-Klassenbibliothek für die NuGet-Paketerstellung

Das .NET-Ökosystem macht es einfach, die Eigenschaften zu definieren, die andere Entwickler benötigen, um Ihre Komponenten zu identifizieren und zu verwenden. Sie können alle diese Eigenschaften in der Projektdatei (*.csproj) Ihrer Razor-Klassenbibliothek so definieren, dass sie mit der Bibliothek mitgeführt und entsprechend aktualisiert werden, wenn Ihre Bibliothek aktualisiert wird.

Sie können Felder, die Ihr Paket identifizieren, im Dialogfeld Visual Studio-Projekteigenschaften – Paket konfigurieren, oder Sie können selbst Einträge direkt in der Datei *.csproj erstellen.

Zum Erstellen eines Pakets sind die folgenden vier Felder erforderlich:

Feld BESCHREIBUNG Standardwert
PackageId Ein Paketbezeichner, der für das gesamte NuGet-Repository eindeutig ist. AssemblyName der Bibliothek
Version Eine bestimmte Versionsnummer in der Form Major.Minor.Patch[-Suffix], wobei -Suffix optional Vorabversionen angibt. 1.0.0
Authors Die Ersteller des Pakets. AssemblyName
Company Der Name des Unternehmens, das für die Erstellung und Veröffentlichung des Pakets verantwortlich ist. AssemblyName

Einige dieser Felder enthalten Standardwerte, und es könnte komisch aussehen, wenn ein Paket mit dem Firmennamen MyFirstLibrary veröffentlicht wird. Es wird dringend empfohlen, diese Werte explizit festzulegen.

In der vorherigen Lerneinheit haben Sie erfahren, dass der statische Inhalt einer Razor-Klassenbibliothek unter _content/[PACKAGE_ID]/ verfügbar ist, und jetzt sehen Sie, wo der Wert PackageId konfiguriert ist.

Eine Beispielprojektdatei mit diesen Werten kann wie folgt aussehen:

<PropertyGroup>
    <PackageId>Learn.MyFirstLibrary</PackageId>
    <Version>0.1.0-alpha1</Version>
    <Authors>Susan Developer, Terry Programmer</Authors>
    <Company>AdventureWorks</Company>
</PropertyGroup>

Wenn Sie das Projekt erstellen, können Sie es auch so konfigurieren, dass ein NuGet-Paket generiert wird, indem Sie entweder im Visual Studio-Dialogfeld Projekteigenschaften die Option NuGet-Paket beim Build generieren auswählen oder den Eintrag GeneratePackageOnBuild neben den anderen Paketfeldern hinzufügen, wie hier gezeigt:

<GeneratePackageOnBuild>True</GeneratePackageOnBuild>

Sie können viele optionale Projekteigenschaften konfigurieren, darunter:

  • Ein Description-Element, das für die Anzeige im NuGet-Repository geeignet ist
  • Ein Urheberrechtshinweis
  • Lizenzierungsinformationen
  • Symbole
  • Projekt-URLs

Eine vollständige Liste der Eigenschaften finden Sie in der Microsoft-Dokumentation zum MSBuild-Paketziel.

Packen der Bibliothek

Nachdem Sie die Bibliothekskonfiguration in die Datei *.csproj geschrieben haben, können Sie das NuGet-Paket entweder in Visual Studio generieren, indem Sie mit der rechten Maustaste auf das Projekt klicken und den Befehl Packen auswählen, oder im Projektordner, indem Sie den folgenden Befehl ausführen:

dotnet pack

Mit diesem dotnet pack-Befehl wird ein Paket mit der Paket-ID und Versionsnummer erstellt und im standardmäßigen Ausgabeordner für die Projekterstellung abgelegt.

Überprüfen Sie Ihr Wissen

1.

Welche Projekteigenschaft ist der Standardwert für PackageId?