diff --git a/NuGet.Config b/NuGet.Config
index b260a3f..6e49632 100644
--- a/NuGet.Config
+++ b/NuGet.Config
@@ -3,8 +3,22 @@
+
+
+
+
+
+
+
+
+
diff --git a/PolyTrader.App.csproj b/PolyTrader.App.csproj
index 49021e8..79e1528 100644
--- a/PolyTrader.App.csproj
+++ b/PolyTrader.App.csproj
@@ -76,6 +76,10 @@
+
+
@@ -91,9 +95,6 @@
-
-
\ No newline at end of file
diff --git a/Ui/LicenseDialog.cs b/Ui/LicenseDialog.cs
index 33dd3d6..e488b73 100644
--- a/Ui/LicenseDialog.cs
+++ b/Ui/LicenseDialog.cs
@@ -57,7 +57,7 @@ namespace PolyTraderSharp.Ui
btnLimited.Text = "Schließen";
}
- btnValidate.Click += (_, _) => Validate();
+ btnValidate.Click += (_, _) => ValidateKey();
btnCopyHwId.Click += (_, _) => CopyHardwareId();
btnLimited.Click += (_, _) => { DialogResult = DialogResult.Cancel; Close(); };
AcceptButton = btnValidate;
@@ -69,7 +69,13 @@ namespace PolyTraderSharp.Ui
catch { return "(nicht ermittelbar)"; }
}
- private void Validate()
+ ///
+ /// Prüft den eingegebenen Schlüssel gegen den Lizenzserver. Bewusst NICHT „Validate" genannt:
+ /// das würde verdecken (CS0108), sodass ein Aufruf
+ /// über eine -Referenz statt der Control-Validierung einen Netzwerk-Call
+ /// auslösen würde.
+ ///
+ private void ValidateKey()
{
string key = txtKey.Text.Trim();
if (string.IsNullOrWhiteSpace(key))
diff --git a/lib/nuget/LicenseLabrador.Client.1.0.0.nupkg b/lib/nuget/LicenseLabrador.Client.1.0.0.nupkg
new file mode 100644
index 0000000..fb9a23d
Binary files /dev/null and b/lib/nuget/LicenseLabrador.Client.1.0.0.nupkg differ
diff --git a/lib/nuget/README.md b/lib/nuget/README.md
new file mode 100644
index 0000000..b1180d1
--- /dev/null
+++ b/lib/nuget/README.md
@@ -0,0 +1,42 @@
+# Lokaler NuGet-Feed (`lib/nuget`)
+
+Hier liegen Pakete aus unseren **eigenen Schwester-Projekten**, die PolyTrader benutzt.
+
+## Warum ein Paket und keine Projektreferenz?
+
+Ursprünglich verwies `PolyTrader.App.csproj` per `ProjectReference` direkt auf
+`..\..\LicenseLabrador\client-dotnet\...`. Das koppelt die Repos hart: PolyTrader
+baut dann nur noch auf einer Maschine, auf der LicenseLabrador zufällig daneben liegt
+— ein Build-Server oder das Zielland-System hätte den Build nicht mehr übersetzen können.
+
+**Die Projekte bleiben eigenständig.** Deshalb wird das SDK als versioniertes
+NuGet-Paket in dieses Verzeichnis gelegt und mitversioniert. Ein reiner DLL-Verweis
+wäre nicht ausreichend gewesen: das Paket trägt die transitiven Abhängigkeiten
+(BouncyCastle.Cryptography, Microsoft.Win32.Registry,
+System.Security.Cryptography.ProtectedData, System.Text.Json) in seinen Metadaten,
+eine nackte DLL nicht.
+
+`nuget.config` bindet dieses Verzeichnis als Quelle `local` ein. Das
+`packageSourceMapping` löst `LicenseLabrador.*` **ausschließlich** lokal auf, damit
+ein gleichnamiges Paket auf nuget.org unsere Version nicht verdrängen kann
+(Dependency Confusion).
+
+## Neue SDK-Version übernehmen
+
+1. Im LicenseLabrador-Repo die `` in
+ `client-dotnet/LicenseLabrador.Client/LicenseLabrador.Client.csproj` **anheben**
+ (gleiche Version zweimal zu packen führt zu stillen Cache-Treffern — NuGet
+ unterscheidet Pakete nur an der Versionsnummer).
+2. Paket bauen:
+
+ ```
+ dotnet pack J:\Softwareprojekte\LicenseLabrador\client-dotnet\LicenseLabrador.Client\LicenseLabrador.Client.csproj -c Release -o J:\Softwareprojekte\PolytraderSharp\PolyTraderSharp\lib\nuget
+ ```
+
+3. In `PolyTrader.App.csproj` die `Version` der `PackageReference` auf die neue
+ Nummer setzen.
+4. Die alte `.nupkg` löschen, damit klar bleibt, welche Fassung gilt.
+5. `dotnet build` + `dotnet test` — und die neue `.nupkg` mit committen.
+
+**Wichtig:** Die Änderung am SDK gehört zuerst ins LicenseLabrador-Repo und wird dort
+committet. Dieses Verzeichnis ist nur die Auslieferung, nicht der Arbeitsort.