none
Das Erstellen eines Pakets zum Querladen funktioniert nicht RRS feed

  • Frage

  • Liebe Gemeinde,

    ich arbeite mit Visual Studio 2022 Community Version 17.2.6 und will für meine UWP-App mit dem Namen "asystDesigner" ein Paket zum Querladen erstellen:

    Zuerst habe ich die App für die Hardwarearchitektur "x64" in Release-Version neu erstellt.

    Dann habe ich im Menü zur Veröffentlichung den Punkt "Pakete erstellen" ausgewählt und damit den Assistenten zur Erstellung von Paketen geöffnet.

    Dort habe ich den Punkt "Querladen" ausgewählt und das Häkchen für Automatische Updates aktivieren belassen.

    Danach habe ich den Punkt "Ja, aktuelles Zertifikat verwenden gewählt und als Verschlüsselungsalgorithmus "SHA256" belassen.

    Unter Updateeinstellungen konfigurieren erscheint der Speicherort des Installers mit

    \\ElisitaMaria\Programme\asystDesigner

    Ich habe ich unter "Wie oft soll die Anwendung nach Updates suchen ? den Punkt "Jedes Mal, wenn die Anwendung ausgeführt wird" ausgewählt

    Bei der Erstellung läuft alles korrekt ab ohne Fehler.

    Unter "Das Paket wurde erstellt" erscheint

    der Ausgabespeicherort:

    C:\Anwender\Development\Projects\asyst\asystDesigner\AsystDesigner\AppPackages\

    Den Punkt "Wählen Sie "Kopieren und Schließen", um die erstellten Pakete vom Ausgangsspeicherort zum Speicherort des Installers zu kopieren" habe ich mit "Kopieren und Schließen" geantwortet.

    Es kommt eine Fehlermeldung "Fehler beim Kopieren des Pakets, Netzwerkname wurde nicht gefunden".

    Wenn ich jetzt im Ausgabespeicherort den Ordner AppPackages öffne finde ich die Datei asystDesigner.appinstaller, ein Klick darauf sollte den Installer öffnen es kommt aber die Fehlermeldung

    "Das App-Paket kann nicht geöffnet werden"

    Grund: "Fehler beim Analysieren des App-Pakets.

    Jetzt bin ich ratlos, könnt Ihr mir helfen?

    Danke im Voraus


    Herbert Stejdir

    Freitag, 22. Juli 2022 13:49

Antworten

  • Du willst doch das deine App automatischen Updates erhält? Wenn Du das nicht brauchts und selbst beim Kunden die neuen Version installierst dann lass automatische Updates weg. Es mache eh kein Sinn automatische Updates zu aktivieren wenn dein Kunde kein Zugriff auf den Pfad hat. 

    Du muss die Install.ps1 mit PowerShell ausführen. Diese würde auch das Zertifikat installieren


    Gruß Thomas
    Github

    Samstag, 23. Juli 2022 21:23

Alle Antworten

  • Hallo,

    der Netzwerkpfad ist das Problem. Die Appinstaller Datei ist nur eine Textdatei (XML) in der dein Pfad angegeben wird. Der Installer versucht unter dem Netzwerkpfad die Datei zu finden, aber dort sind sie ja nicht das sie nicht kopiert wurden.

    Üblicherweise stellt man die App über einen Webserver zur Verfügung. Schau dir dazu die Doku an:

    Verwalten Ihrer MSIX-Bereitstellung


    Gruß Thomas
    Github

    Freitag, 22. Juli 2022 15:40
  • Danke Thomas,

    die XML-Datei des asystDesigner.installer sieht so aus:

    <?xml version="1.0" encoding="utf-8"?>
    <AppInstaller
    Uri="file://elisitamaria/Programme/asystDesigner/asystDesigner.appinstaller"
    Version="1.0.0.0" xmlns="http://schemas.microsoft.com/appx/appinstaller/2017/2">
    <MainBundle
    Name="1a8ff999-7649-4fd5-bca0-e91bb940d100"
    Version="1.0.0.0"
    Publisher="CN=Herbert Stejdir"
    Uri="file://elisitamaria/Programme/asystDesigner/asystDesigner_1.0.0.0_Test/asystDesigner_1.0.0.0_x64.appxbundle" />
    <Dependencies>
    <Package
    Name="Microsoft.NET.Native.Framework.2.1"
    Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US"
    ProcessorArchitecture="x64"
    Uri="file://elisitamaria/Programme/asystDesigner/asystDesigner_1.0.0.0_Test/Dependencies/x64/Microsoft.NET.Native.Framework.2.1.appx"
    Version="2.1.26424.0" />
    <Package
    Name="Microsoft.NET.Native.Runtime.2.1"
    Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US"
    ProcessorArchitecture="x64"
    Uri="file://elisitamaria/Programme/asystDesigner/asystDesigner_1.0.0.0_Test/Dependencies/x64/Microsoft.NET.Native.Runtime.2.1.appx"
    Version="2.1.26424.0" />
    <Package
    Name="Microsoft.VCLibs.140.00"
    Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US"
    ProcessorArchitecture="x64"
    Uri="file://elisitamaria/Programme/asystDesigner/asystDesigner_1.0.0.0_Test/Dependencies/x64/Microsoft.VCLibs.x64.14.00.appx"
    Version="14.0.30704.0" />
    </Dependencies>
    <UpdateSettings>
    <OnLaunch
    HoursBetweenUpdateChecks="0" />
    </UpdateSettings>
    </AppInstaller>

    Ich habe den asystDesigner.installer in //elisitamaria/Programme/asystDesigner kopiert und

    den Ordner asystDesigner_1.0.0.0_Test auch in //elisitamaria/Programme/asystDesigner kopiert.

    Wen ich die XML-Datei des asystDesigner.installer richtig interpretiere dann sollten die einzelnen Pfade jetzt übereinstimmen.

    Starte ich jetzt denasystDesigner.installer dann kommt dieselbe Fehlermeldung

    Das App-Paket kann nicht geöffnet werden

    Grund: Fehler beim Analysieren des App-Pakets

    Ich kenn mich jetzt gar nicht mehr aus, was ist mit dem App-Paket gemeint, wo ist dieses zu finden und warum kopiert der Assistent zum Erstellen eines App-Pakets nicht das Paket an den Ort des Installers obwohl angegeben ?


    Herbert Stejdir

    Freitag, 22. Juli 2022 18:06
  • Er kann mit dieser Pfadabgabe nichts anfangen. Vielleicht solltest Du versuchen das Laufwerk erst zu mounten. (Netzwerklaufwerk verbinden)

    Ich der Doku konnte ich zur lokalen Pfadangaben nichts finden.

    Das App-Paket ist der Ordner asystDesigner_1.0.0.0_Test. Darin ist die App + Zertifikate + Abhängigkeiten und das PowerShell Skript zum installieren der App


    Gruß Thomas
    Github

    Freitag, 22. Juli 2022 20:55
  • Lieber Thomas,

    ein Netzwerklaufwerk sollte in meinem Fall überhaupt keine Rolle spielen, da alles nur auf meinem PC lokal gespeichert ist.


    Herbert Stejdir

    Samstag, 23. Juli 2022 09:48
  • Aber Du gibst doch einen Netzwerkpfad an \\ElisitaMaria\Programme\asystDesigner

    Du verwendest hier einen UNC Pfad. Dieser wird mit \\ eingeleitet und ElisitaMaria ist der Computername der im Netzwerk aufgelöst werden kann


    Gruß Thomas
    Github


    Samstag, 23. Juli 2022 11:27
  • Lieber Thomas,

    jetzt habe ich den Speicherort für den Installer auf C:\Programme\asystDesigner  eingestellt und diesen für den Benutzer Jeder freigegeben uns in den Sicherheitseinstellungen den Benutzer Jeder hinzugefügt und diesem Vollzugriff gewährt. 

    Die Paketerstellung läuft jetzt normal ab, wenn ich aber angebe das Paket an de Ort des Installers ( also in den obigen Ordner ) zu kopieren dann kommt die Fehlermeldung

    der Zugriff auf C:\Progrtamme\asystDesigner wurde verweigert

    das sollte doch funktionieren oder muss ich einer speziellen Instanz den Zugriff gewähren ?


    Herbert Stejdir

    Samstag, 23. Juli 2022 12:09
  • Hallo Herbert,

    mit dem Benutzer Jeder sollte das eigentlich funktionieren. Ich habe das auch grade getestet bei mir funktioniert das in D:\TestApp.

    Wie schon geschrieben am einfachsten ist es mit einem Webserver


    Gruß Thomas
    Github

    Samstag, 23. Juli 2022 12:24
  • Lieber Thomas,

    ich brauche keinen Web-Server, ich will ja meine App nicht für alle veröffentlichen sondern nur bei zukünftigen einzelnen Kunden querladen. Dazu müsste es ausreichen das Paket asystDesigner_1.0.0.0_Test zum Kunden mitzunehmen, dieses auf den Kunden-PC zu laden und die Installation durch Rechtsklick auf die Datei Add-AppDevPackage.ps1 mit PowerShell ausführen zu starten.

    Das habe ich auf meinem anderen PC probiert, die PowerShell startet zwar bricht aber ohne Fehlermeldung ab.

    Ich hab' in dieser Sache einfach kein Glück, an allen Ecken und Enden stellen sich Probleme in den Weg, die so nicht zu erwarten sind.


    Herbert Stejdir

    Samstag, 23. Juli 2022 13:56
  • Übrigens habe ich vorher auf dem anderen PC das Zertifikat, das im Paket enthalten ist in die vertrauenswürdigen Stammzertifikatsstellen importiert. Auch das hat nichts genutzt.

    Herbert Stejdir

    Samstag, 23. Juli 2022 14:00
  • Du willst doch das deine App automatischen Updates erhält? Wenn Du das nicht brauchts und selbst beim Kunden die neuen Version installierst dann lass automatische Updates weg. Es mache eh kein Sinn automatische Updates zu aktivieren wenn dein Kunde kein Zugriff auf den Pfad hat. 

    Du muss die Install.ps1 mit PowerShell ausführen. Diese würde auch das Zertifikat installieren


    Gruß Thomas
    Github

    Samstag, 23. Juli 2022 21:23