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.