C-Sharp PSCmdlet Dll mit WPF-Window. Nicht erwartetes Verhalten bei Window.Show()
Hallo @ All,
Ich arbeite an einem Cmdlet in C# (Visual Studio Professional 2019) um Installationen via SCCM zu vereinheitlichen.
Das Projekt ist an sich beinahe fertig und funktioniert sehr gut, nur wird gewünscht, dass bei allen Installationen vorher der Benutzer informiert wird. Wir wollen das mit einem so genannten Notification-Window umsetzen.
Das Problem dabei ist, dass es ein paar Buttons im Notification-Window gibt deren Events ich im Script abfangen muss. Darum dachte ich an ein WPF-Window innerhalb der DLL.
Versuche mit NamedPipe-Communication sind kläglich gescheitert da NamedPipe offenbar nur 1x zwischen Client und Server kommuniziert. Ich muss aber mindestens 10 Events abfangen bzw. übertragen können. Oder, und das ist wohl das Wahrscheinlichste ;-( , ich bin zu doof das zum Laufen zu bekommen.
Ich habe also, wie oben beschrieben, die .csproj-Datei um diesen Punkt erweitert nach dieser Anleitung:
https://stackoverflow.com/questions/3573339/no-creation-of-a-wpf-window- ...
Nun kann ich ein WPF Window einfügen das ich den Anforderungen entsprechend erstellt habe:
Zum Testen der DLL stelle ich folgendes ein unter Solution => Properties => Debug
Die DLL wird mit Import-Module im ps1-Script importiert
Wenn ich die Solution starte wird das Script braf ausgeführt, und es scheint auch das Window zu starten, jedoch she ich in der Taskleiste nur ein zweites Powershell-Fenster das komplett leer ist. Mein WPF-Window ist nicht sichtbar.
Ich vermute es liegt am falschen Kontext zwischen Script und DLL, aber 0 Ahnung wie ich das ändern könnte.
Kann mir jemand eine Tipp geben wie ich von der dll heraus das Window saber anzeigen kann?
Alternativ würde ich auch gerne Tipps bzgl. NamedPipe nehmen, weil die Fenster als WPF-Project auch schon fertig sind.
Danke für eure Hilfe!
Mayho
Ich arbeite an einem Cmdlet in C# (Visual Studio Professional 2019) um Installationen via SCCM zu vereinheitlichen.
Das Projekt ist an sich beinahe fertig und funktioniert sehr gut, nur wird gewünscht, dass bei allen Installationen vorher der Benutzer informiert wird. Wir wollen das mit einem so genannten Notification-Window umsetzen.
Das Problem dabei ist, dass es ein paar Buttons im Notification-Window gibt deren Events ich im Script abfangen muss. Darum dachte ich an ein WPF-Window innerhalb der DLL.
Versuche mit NamedPipe-Communication sind kläglich gescheitert da NamedPipe offenbar nur 1x zwischen Client und Server kommuniziert. Ich muss aber mindestens 10 Events abfangen bzw. übertragen können. Oder, und das ist wohl das Wahrscheinlichste ;-( , ich bin zu doof das zum Laufen zu bekommen.
Ich habe also, wie oben beschrieben, die .csproj-Datei um diesen Punkt erweitert nach dieser Anleitung:
https://stackoverflow.com/questions/3573339/no-creation-of-a-wpf-window- ...
<?xml version="1.0" encoding="utf-8"?>
...
<PropertyGroup>
...
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
...
</PropertyGroup>
...
Nun kann ich ein WPF Window einfügen das ich den Anforderungen entsprechend erstellt habe:
Zum Testen der DLL stelle ich folgendes ein unter Solution => Properties => Debug
- Externes Programm ein: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
- Befehlszeilenargument: -Executionpolicy Bypass -noexit -file "pfad zur dll\InstallTester.ps1"
Die DLL wird mit Import-Module im ps1-Script importiert
Wenn ich die Solution starte wird das Script braf ausgeführt, und es scheint auch das Window zu starten, jedoch she ich in der Taskleiste nur ein zweites Powershell-Fenster das komplett leer ist. Mein WPF-Window ist nicht sichtbar.
Ich vermute es liegt am falschen Kontext zwischen Script und DLL, aber 0 Ahnung wie ich das ändern könnte.
Kann mir jemand eine Tipp geben wie ich von der dll heraus das Window saber anzeigen kann?
Alternativ würde ich auch gerne Tipps bzgl. NamedPipe nehmen, weil die Fenster als WPF-Project auch schon fertig sind.
Danke für eure Hilfe!
Mayho
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 607979
Url: https://administrator.de/contentid/607979
Ausgedruckt am: 23.11.2024 um 22:11 Uhr
1 Kommentar