Laden...

Windows App läuft nur auf meinen Rechnern

Erstellt von AmpelB vor 8 Monaten Letzter Beitrag vor 8 Monaten 458 Views
A
AmpelB Themenstarter:in
39 Beiträge seit 2021
vor 8 Monaten
Windows App läuft nur auf meinen Rechnern

Ich habe eine MAUI App geschrieben, die beim Builden eine lauffähige Exe erstellt. Die läuft auch sowohl auf meinem Desktop als auch auf meinem Laptop. Nun habe ich die Exe (zusammen mit den 40MB anderen Dateien, die noch dabei liegen) auf den Rechner eines Kollegen kopiert.

Dort startet das Programm soweit, dass das Fenster korrekt angezeigt wird. Man kann aber nichts machen. Gemäß Task Manager werden auch 0% CPU Zeit benötigt.

Zuerst war wohl nicht das .Net Core 7 auf dem Rechner installiert. Das haben wir aber nachgeholt. In der Konsole werden nun unter dotnet --list-sdks und dotnet --list-runtime die Versionen (sogar die 7.08, wobei ich die 7.07 habe) angezeigt. Das hat auf mein Programm aber keinen Einfluss.

Dann habe ich gelesen, dass bei einigen das Installieren der WinUI 3 Gallery geholfen hätte. Beim Kollegen aber nicht. Auch ein installieren (bzw. update) des Windows App SDKs hat keine Änderung gebracht.

Naiv wie ich bin hätte ich erwartet, dass das Programm erst gar nicht startet, wenn kein passendes .Not Core installiert ist. Besser noch, dass es eine Fehlermeldung gibt, die darauf hinweist. Aber hier kommt nichts.

Wie finde ich denn nun heraus, was meinem Programm auf dem anderen Rechner fehlt? Ich kann ja auch schlecht debuggen um festzustellen, was das Programm überhaupt macht. Vielleicht habe ich ja auch was falsch gemacht. Da bin ich aber skeptisch; es läuft ja auf meinen beiden Rechnern.

Allerdings ist auf meinen beiden Rechner auch Visual Studio mit der MAUI Entwicklung installiert.

Irgendwelche Tipps?

16.783 Beiträge seit 2008
vor 8 Monaten

Hast die Hinweise in Publish a .NET MAUI app for Windows beachtet?

.NET MAUI currently only allows publishing an MSIX package. You can't yet publish a Windows executable file for distribution.

A
AmpelB Themenstarter:in
39 Beiträge seit 2021
vor 8 Monaten

Wie in einigen Beiträgen zu lesen ist, bekommt man ein "wirkliches Exe", indem man commandNmae in launchSettings.json auf Project ändert und in einer PropertyGroup der Projekt Datei WindowsPackageType = None einfügt. Das funktioniert bei mir auch. Ich kann auf dem einen meiner Rechner so eine Exe machen. Die kopiere ich dann (zusammen mit den anderen Megabyte im Verzeichnis) auf den anderen Rechner und kann sie dort ausführen.

Halt nur nicht auf dem Rechne meines Kollegen. Bei einem zweiten Kollegen funktioniert es übrigens auch nicht. Ich schätze mal, das funktioniert auf allen anderen Rechnern nicht. Vielleicht nur auf denen, bei denen auch Visual Studio für MAUI installiert ist.

A
AmpelB Themenstarter:in
39 Beiträge seit 2021
vor 8 Monaten

Vielleicht noch ein Punkt. Ich würde ja wohl ein MSIX Package benutzen. Aber dafür braucht man ja ein Code-Signing Zertifikat, welches ich nicht habe. Und diese Zertifikate sind ja ganz so günstig.

Es gibt ja wohl keine Möglichkeit, das als MSIX Package zu erzeugen ohne ein Zertifikat zu haben, oder?

16.783 Beiträge seit 2008
vor 8 Monaten
  • Wenn Du den Microsoft Store benutzt, bekommst Du automatisch ein Zertifikat
  • Du kannst Dir ein Self Signed Code Certificate verwenden. Windows wird Dir dann sagen, dass das Zertifikat nicht aus einer vertrauenswürdigen Quelle stammt, was Du aber skippen kannst. Kannst die Self CA auch auf den anderen Rechnern bekannt machen (macht man in größeren Unternehmen so), dann kommt die Warning nicht.
A
AmpelB Themenstarter:in
39 Beiträge seit 2021
vor 8 Monaten

Ich habe versucht, das Self CA auf einem anderen Rechner zu installieren. Das hat aber nicht funktioniert.

Genau genommen hat das Installieren schon funktioniert. Er hat es aber immer unter Local User installiert (zumindes  bei einem normalen doppelklick auf die erzeugt Schlüsseldatei). Ich muss es aber beim anderen Rechner doch unter Local Machine installieren und dann auch noch als Vertrauenswürdig einstufen.

Wie mache ich das denn?

A
AmpelB Themenstarter:in
39 Beiträge seit 2021
vor 8 Monaten

Ich habe es nun doch hinbekommen.

Beim Erstellen des Pakets in Visual Studio habe ich ein neues Zertifikat erzeugt und als vertrauensvoll eingestuft.

Danach habe ich dieses mit der Windows Zertikatsverwaltung in eine Datei exportiert. Die konnte ich dann auf dem anderen Rechner unter Local Machine und unter vertrauensvolle Person importieren. Damit lies sich dort dann auch das Programm installieren.

Danke für den Schups in diese Richtung.

A
AmpelB Themenstarter:in
39 Beiträge seit 2021
vor 8 Monaten

Wir sind einen großen Schritt weiter.

Das mit dem Zertifikat installieren (wenn auch manuell) und das Installationspaket zu installieren funktioniert auch auf dem anderen Rechner.

Wenn das Programm dann das erste Mal mit Admin Rechten gestartet wird, funktioniert es auch. Danach funktioniert es auch ohne Admin Rechte.

Jetzt ist halt nur die Frage, wofür benötigt das Programm das erste Mal Admin Rechte? Ich benutze Preferences. Kann es sein, dass zum Erstellen der zugehörigen Datei Admin Rechte erforderlich sind? Zum schreiben/lesen später aber nicht mehr?

Ich müsste also mal eine Version ohne Preferences machen und diese dann auf einem frischen Rechner ausprobieren.

16.783 Beiträge seit 2008
vor 8 Monaten

Jetzt ist halt nur die Frage, wofür benötigt das Programm das erste Mal Admin Rechte? Ich benutze Preferences. Kann es sein, dass zum Erstellen der zugehörigen Datei Admin Rechte erforderlich sind? Zum schreiben/lesen später aber nicht mehr?

IIRC braucht MAUI Adminrechte, wenn Du FullTrust-Rechte anforderst.

A
AmpelB Themenstarter:in
39 Beiträge seit 2021
vor 8 Monaten

Dann muss ich wohl noch mal lesen, wie das mit Rechten Anfordern ist.

Einen Tip?