Umstieg auf .NET 10 + transitive Newtonsoft-Luecke geschlossen

Alle sieben Projekte auf net10.0 (App: net10.0-windows). Runtime 10.0.10 ist
installiert, 442 Tests gruen, Linux-Publish aller Nicht-App-Projekte laeuft.

EF Core 8 / Pomelo 8 bleiben bewusst stehen: net10.0 konsumiert net8.0-Bibliotheken
problemlos, und ein Provider-Wechsel hat wegen der Migrations-Implikationen eine
eigene Risikoflaeche - das gehoert in einen separaten, verifizierten Durchgang.

Sicherheitsfund nebenbei: Ab .NET 9 prueft NuGet standardmaessig auch transitive
Pakete. Damit wurde sichtbar, dass Nethereum 6.1.0 Newtonsoft.Json [11.0.2, 14.0.0)
zulaesst und ohne Pinnung auf 11.0.2 aufloest - bekannte Luecke hoher Schwere
(GHSA-5crp-9r3c-p9vr). Die App pinnte laengst 13.0.4, Core und Module nicht.
Jetzt im Core gepinnt, damit jeder Consumer sie bekommt (auch der kuenftige
Linux-Daemon). Danach 0 NU1903-Warnungen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Richard
2026-08-06 17:42:24 +02:00
co-authored by Claude Opus 5
parent f8aa90882b
commit a2b1c18ee3
7 changed files with 15 additions and 8 deletions
+2 -2
View File
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net8.0-windows7.0</TargetFramework> <TargetFramework>net10.0-windows</TargetFramework>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<ApplicationIcon>favicon.ico</ApplicationIcon> <ApplicationIcon>favicon.ico</ApplicationIcon>
+8 -1
View File
@@ -5,7 +5,7 @@
ist toolkit-neutral (Func<object> statt Func<Form>, IconKey statt System.Drawing.Image), ist toolkit-neutral (Func<object> statt Func<Form>, IconKey statt System.Drawing.Image),
damit hier weder WinForms noch System.Drawing.Common hängen letzteres ist seit .NET 7 damit hier weder WinForms noch System.Drawing.Common hängen letzteres ist seit .NET 7
Windows-only und wirft auf Linux. Die WinForms-Umsetzung liegt in PolyTrader.App (Ui/). --> Windows-only und wirft auf Linux. Die WinForms-Umsetzung liegt in PolyTrader.App (Ui/). -->
<TargetFramework>net8.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
@@ -20,6 +20,13 @@
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="8.0.0" /> <PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="8.0.0" /> <PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="8.0.0" />
<PackageReference Include="Nethereum.Web3" Version="6.1.0" /> <PackageReference Include="Nethereum.Web3" Version="6.1.0" />
<!-- Sicherheit: Nethereum 6.1.0 laesst transitiv Newtonsoft.Json [11.0.2, 14.0.0) zu und
wuerde ohne Pinnung auf 11.0.2 aufloesen - das hat eine bekannte Luecke hoher Schwere
(GHSA-5crp-9r3c-p9vr). Die .NET-10-Paketpruefung meldet das jetzt auch fuer transitive
Abhaengigkeiten. 13.0.4 liegt im erlaubten Bereich und ist die Version, die auch die App
schon nutzt. Hier im Core gepinnt, damit JEDER Consumer (Module, kuenftiger Linux-Daemon)
sie bekommt und nicht nur die WinForms-App. -->
<PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
</ItemGroup> </ItemGroup>
<!-- Erlaubt dem Testprojekt, interne Helfer (z.B. SecretProtection.Reset) zu testen. --> <!-- Erlaubt dem Testprojekt, interne Helfer (z.B. SecretProtection.Reset) zu testen. -->
@@ -27,7 +27,7 @@
<!-- Linux-Portierung: plattformneutral. Die WinForms-UI dieses Moduls (Ingest, BWA, Export) <!-- Linux-Portierung: plattformneutral. Die WinForms-UI dieses Moduls (Ingest, BWA, Export)
wurde entfernt; die Avalonia-Ansicht kommt spaeter direkt hierher zurueck Avalonia ist wurde entfernt; die Avalonia-Ansicht kommt spaeter direkt hierher zurueck Avalonia ist
im Gegensatz zu WinForms plattformuebergreifend und braucht kein eigenes UI-Projekt. --> im Gegensatz zu WinForms plattformuebergreifend und braucht kein eigenes UI-Projekt. -->
<TargetFramework>net8.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
@@ -23,7 +23,7 @@
<!-- Linux-Portierung: plattformneutral. Die WinForms-UI dieses Moduls (Trading-Engine, SELL-Leiter, Master-Trader-Analytics) <!-- Linux-Portierung: plattformneutral. Die WinForms-UI dieses Moduls (Trading-Engine, SELL-Leiter, Master-Trader-Analytics)
wurde entfernt; die Avalonia-Ansicht kommt spaeter direkt hierher zurueck Avalonia ist wurde entfernt; die Avalonia-Ansicht kommt spaeter direkt hierher zurueck Avalonia ist
im Gegensatz zu WinForms plattformuebergreifend und braucht kein eigenes UI-Projekt. --> im Gegensatz zu WinForms plattformuebergreifend und braucht kein eigenes UI-Projekt. -->
<TargetFramework>net8.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
@@ -23,7 +23,7 @@
<!-- Linux-Portierung: plattformneutral. Die WinForms-UI dieses Moduls (Scanner und Ausfuehrung) <!-- Linux-Portierung: plattformneutral. Die WinForms-UI dieses Moduls (Scanner und Ausfuehrung)
wurde entfernt; die Avalonia-Ansicht kommt spaeter direkt hierher zurueck Avalonia ist wurde entfernt; die Avalonia-Ansicht kommt spaeter direkt hierher zurueck Avalonia ist
im Gegensatz zu WinForms plattformuebergreifend und braucht kein eigenes UI-Projekt. --> im Gegensatz zu WinForms plattformuebergreifend und braucht kein eigenes UI-Projekt. -->
<TargetFramework>net8.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
@@ -28,7 +28,7 @@
<!-- Linux-Portierung: plattformneutral. Die WinForms-UI dieses Moduls (KI-Analyse, Dossiers, MCP-Light) <!-- Linux-Portierung: plattformneutral. Die WinForms-UI dieses Moduls (KI-Analyse, Dossiers, MCP-Light)
wurde entfernt; die Avalonia-Ansicht kommt spaeter direkt hierher zurueck Avalonia ist wurde entfernt; die Avalonia-Ansicht kommt spaeter direkt hierher zurueck Avalonia ist
im Gegensatz zu WinForms plattformuebergreifend und braucht kein eigenes UI-Projekt. --> im Gegensatz zu WinForms plattformuebergreifend und braucht kein eigenes UI-Projekt. -->
<TargetFramework>net8.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net8.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<IsPackable>false</IsPackable> <IsPackable>false</IsPackable>