wir haben unsere Anwendung (WPF) von .net8 auf .net10 migriert. Die Anwendung wird mit den Bereitstellungsmodus “Eigenständig” (SelfContained) veröffentlicht.
Sobald man den Designer nach der Migration in der Anwendung aufruft, erhält man die Fehlermeldung das der Designer nicht in einer Web-Application verwendet werden kann. Wird die Anwendung “Frameworkabhängig” verteilt, so kann der Designer aufgerufen werden.
Unter .net8 kann der Designer auch in Framework unabhängigen Anwendungen gestartet werden.
Das verhalten tritt bei den “alten” L&L 28 als auch bei L&L 31 auf.
Auch im Debugger tritt der Fehler auf, wenn man die Projektdatei um true erweitert.
Kennt jemand eine Lösung um die Anwendung weiterhin frameworkunabhänig zu verteilen.
Vielen Dank für Deinen Hinweis bezüglich des Unterschieds zwischen .NET 8 und .NET 10. Wir haben das Thema noch einmal etwas genauer untersucht und konnten dazu einige Hintergrundinformationen finden.
Nach den uns vorliegenden Informationen wurde das Verhalten der Windows-Desktop-Runtime-Packs ab .NET 9 angepasst. Während bei Self-Contained-Deployments unter .NET 8 bestimmte WPF- und WinForms-Komponenten offenbar noch weniger strikt voneinander getrennt behandelt wurden, berücksichtigt das Runtime-Pack ab .NET 9 die tatsächlich konfigurierten Desktop-Profile deutlich genauer.
Kurz: Komponenten, die unter .NET 8 möglicherweise automatisch bzw. implizit mit ausgeliefert wurden, werden unter .NET 9 und .NET 10 nur noch dann in das Self-Contained-Paket aufgenommen, wenn das Projekt diese auch ausdrücklich anfordert.
Falls Du den technischen Hintergrund genauer nachlesen möchtest, findest Du hier zwei Diskussionen aus dem .NET-Umfeld, die sehr gut zu den beobachteten Änderungen passen:
Das würde auch die von Dir beobachtete Änderung erklären. Der List & Label Designer sowie die Echtzeitdatenvorschau benötigen intern WinForms-Komponenten. Das eigentliche List & Label Objekt selbst ist davon nicht betroffen. In einem Framework-Dependent Deployment sind die benötigten Komponenten häufig bereits über die installierte .NET Desktop Runtime verfügbar. Bei einem Self-Contained Deployment entscheidet dagegen die Projektkonfiguration darüber, welche Teile der Desktop-Runtime in das veröffentlichte Paket aufgenommen werden.
Bitte versuche einmal WinForms im Projekt explizit zu aktivieren. Dazu sollte in der Projektdatei (*.csproj) im entsprechenden <PropertyGroup>-Abschnitt folgende Einstellung ergänzt werden:
Wichtiger Hinweis: Die Einstellung sorgt nicht dafür, dass die Anwendung zu einer WinForms-Anwendung wird. Sie teilt dem Build- und Publish-Prozess lediglich mit, dass neben WPF auch die WinForms-Komponenten benötigt werden und daher bei einem Self-Contained Publish berücksichtigt werden müssen.
Nach Deinen bisherigen Tests scheint dies die korrekte Lösung für das beschriebene Verhalten zu sein.