mayho33
Goto Top

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- ...
<?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:
wpf

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

Content-ID: 607979

Url: https://administrator.de/contentid/607979

Ausgedruckt am: 23.11.2024 um 22:11 Uhr

mayho33
mayho33 27.09.2020 um 11:55:04 Uhr
Goto Top
EDIT:

habe das Problem mittlerweile lösen können. Hat ja nur 1 Nacht gekostet face-wink

Grüße!