Hallo und danke im Voraus,
Ich habe ein Problem mit einer WPF-Anwendung, die die ToastNotificationManager-Klasse verwendet:
Die ToastNotificationManager-Klasse benötigt eine App-Identity.
Ich habe diese Lösung gefunden, die am Anfang gut zu funktionieren schien:
https://www.thomasclaudiushuber.com/2019/04/26/calling-windows-10-apis-from-your-wpf-application/
Im Abschnitt "Create an Identity for Your WPF App" hat Thomas ausführlich beschrieben, wie man einer Lösung ein Windows-Anwendungspaketierungsprojekt als Startprojekt hinzufügen kann, um die App-ID zu erhalten.
Dies hat sehr gut funktioniert.
Aber nur in der Entwicklungsumgebung, also wenn ich meine Anwendung aus der Visual Studio 2019-Umgebung starte und teste
Sobald ich die App publishe (mit der Option "produce-single-file"), funktioniert sie nicht.
Die Fehler gehen eindeutig in die Richtung, dass die App-Identität fehlt. Der Fehler tritt nach dem Aufruf der Methode "ToastNotificationManager.CreateToastNotifier()" auf.
Hat jemand eine Idee, warum die Lösung mit dem Setzen der App-ID mit dem zusätzlichen Application-Packaging-Projekt als Startprojekt nur beim Aufruf der App aus der Visual Studio-Umgebung funktioniert? Und wie könnte ich es lösen, damit es auch als veröffentlichte exe-Datei läuft?
Ich habe zwei Ideen - aber ich bin ein Anfänger in C#, also gehe ich davon aus, dass Ihr bessere Ideen habt 😉
Vielen Dank für Euren Rat !
Viele Grüße
Emanuel
Vorweg zur Technologie:
UWP war mal der Ansatz eine Multi Plattform UI herstellen zu können, was in weiten Teilen nicht funktioniert hat; es hat zuviel ausgeschlossen und wurde nicht akzeptiert.
Daher gibts Unterschiede zu WPF, was Du schon entdeckt hast.
Die neueste Welt nennt sich MAUI und kommt mit .NET 6: GitHub - dotnet/maui: .NET MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop.
Self Contained Apps und Manifest-Dateien waren nicht immer unterstützt bzw. weiß ich gar nicht, ob das mittlerweile unterstützt wird; musst mal schauen.
Aber im Debugging wirds funktionieren, weil beim Debugging kein Self Contained Mechanismus ausgelöst.
Mein Halbwissen: IIRC brauchst Du das aber mittlerweile nicht mehr, siehe
Call Windows Runtime APIs in desktop apps - Windows apps
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code