0Pricing
C# Academy · Lektion

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

Schnelltest: Welche Änderung erfordert bei semantischer Versionierung normalerweise eine MAJOR-Versionserhöhung?

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

  1. Bibliotheks- und App-.csproj, semantische Versionierung
  2. Packen und Veröffentlichen auf NuGet
  3. Multi-Targeting
← Zurück zu C# Academy