Bibliotheks- und App-.csproj, semantische Versionierung
Verstehen Sie Bibliotheks- und App-.csproj, wie NuGet Bibliotheken verwendet und wie semantische Versionierung (MAJOR.MINOR.PATCH) Releases steuert.
Bibliotheks- und App-.csproj, semantische Versionierung ist eine kostenlose C# Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C# Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C# Academy-Kurs umfasst insgesamt 3 Lektionen.
Konzepte und Ziele
Ziel: Wissen, wann Sie eine Bibliothek statt einer App erstellen sollten und wie Versionen Änderungen signalisieren.
- Bibliotheksprojekt (.csproj): zur Referenzierung und zum Packen für NuGet erstellt
- App-Projekt (.csproj): erzeugt eine ausführbare Datei für Endbenutzer
- Semantische Versionierung: MAJOR.MINOR.PATCH
Bibliothek im Vergleich zur App: Kurzüberblick
- Bibliothek: zielt auf Frameworks, um die Wiederverwendung zu maximieren; enthält Metadaten (PackageId, Version, Authors).
- App: verfügt über einen Einstiegspunkt und veröffentlicht ausführbare Ausgaben.
- NuGet verpackt Bibliotheken in .nupkg; Apps werden normalerweise veröffentlicht, nicht verpackt.
Demo zur Assemblyversion
Eine Bibliothek stellt eine Version bereit; Verbraucher sehen sie, wenn sie auf das Paket verweisen.
using System;
using System.Reflection;
// Simple demo: read the assembly version at runtime.
// In a packed library, this reflects the version consumers see.
public class Program
{
public static void Main(string[] args)
{
Version v = Assembly.GetExecutingAssembly().GetName().Version;
Console.WriteLine("Assembly version: " + (v == null ? "unknown" : v.ToString()));
}
}
SemVer-Vergleich (Grundlagen)
Vergleichen Sie Versionen, um Updates zu bestimmen: zuerst MAJOR, dann MINOR, dann PATCH.
using System;
// Minimal SemVer (MAJOR.MINOR.PATCH) parsing and comparison.
// Ignores prerelease/build metadata for simplicity (good enough for beginners).
public class SemVer : IComparable<SemVer>
{
public int Major;
public int Minor;
public int Patch;
public static bool TryParse(string s, out SemVer v)
{
v = null;
if (string.IsNullOrEmpty(s)) return false;
string[] parts = s.Split('.');
if (parts.Length < 3) return false;
int a, b, c;
if (!int.TryParse(parts[0], out a)) return false;
if (!int.TryParse(parts[1], out b)) return false;
if (!int.TryParse(parts[2], out c)) return false;
v = new SemVer { Major = a, Minor = b, Patch = c };
return true;
}
public int CompareTo(SemVer other)
{
if (other == null) return 1;
if (Major != other.Major) return Major.CompareTo(other.Major);
if (Minor != other.Minor) return Minor.CompareTo(other.Minor);
return Patch.CompareTo(other.Patch);
}
public override string ToString()
{
return Major + "." + Minor + "." + Patch;
}
}
public class Program
{
public static void Main(string[] args)
{
SemVer a, b;
if (SemVer.TryParse("1.4.2", out a) && SemVer.TryParse("1.5.0", out b))
{
int cmp = a.CompareTo(b);
Console.WriteLine(a + " vs " + b + " -> " + (cmp < 0 ? "older" : (cmp > 0 ? "newer" : "equal")));
}
}
}
Regeln zum Erhöhen der Version
Regeln zum Erhöhen der Version:
- MAJOR: inkompatible Änderungen an der API
- MINOR: neue Funktionen, abwärtskompatibel
- PATCH: Fehlerbehebungen und Wartungsarbeiten, keine API-Änderung
Tipp: Kommunizieren Sie Änderungen in einem kurzen Changelog.
Checkliste vor dem Packen
- Ziel-Frameworks der Bibliothek festgelegt (z. B. netstandard)
- PackageId, Version, Authors ausgefüllt
- Lizenz und README enthalten
- Öffentliche API auf inkompatible Änderungen geprüft
SemVer-Regel
Zusammenfassung
Zusammenfassung: Erstellen Sie Bibliotheken zur Wiederverwendung und zum Packen für NuGet; Apps sind ausführbare Dateien. Verwenden Sie MAJOR.MINOR.PATCH, um Änderungen sicher zu kommunizieren.
Häufig gestellte Fragen
Ist die Lektion „Bibliotheks- und App-.csproj, semantische Versionierung“ kostenlos?
Ja — der vollständige Text von „Bibliotheks- und App-.csproj, semantische Versionierung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C# Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C# Academy-Kurs umfasst insgesamt 3 Lektionen.
Was lerne ich in „Bibliotheks- und App-.csproj, semantische Versionierung“?
Verstehen Sie Bibliotheks- und App-.csproj, wie NuGet Bibliotheken verwendet und wie semantische Versionierung (MAJOR.MINOR.PATCH) Releases steuert. Du übst C# Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um C# Academy zu starten?
Keine Vorkenntnisse erforderlich. C# Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 3.
Wie lange dauert die Lektion „Bibliotheks- und App-.csproj, semantische Versionierung“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser C# Academy-Lektion Code schreiben und ausführen?
Ja. Jede C# Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Bibliotheks- und App-.csproj, semantische Versionierung
- Packen und Veröffentlichen auf NuGet
- Multi-Targeting