Die Installation der UWP-App schlägt über die Benutzeroberfläche fehl, funktioniert aber in PowerShell

Die Installation der UWP-App schlägt über die Benutzeroberfläche fehl, funktioniert aber in PowerShell

Ich versuche, eine UWP-Anwendung zu verteilen und bin auf ein etwas merkwürdiges Problem gestoßen.

  • Die Anwendung wird aus Visual Studio mithilfe der automatischen Update-Funktion erstellt, was zu einer .appinstallerDatei und zugehörigen MSIX-Bundles usw. führt.
  • Diese Artefakte werden zur Verteilung in einen Azure App Service hochgeladen.
  • Beim Herunterladen und Ausführen der .appinstallerDatei tritt der Fehler auf Error in parsing the app package.– nicht besonders hilfreich
  • Die App ist mit einem Zertifikat signiert, das installiert ist unterTrusted Publishers
  • Die web.configDatei auf dem Server ist so eingerichtet, dass MIME-Typen korrekt zugeordnet werden:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.webServer>
    <staticContent>
      <mimeMap fileExtension=".appx" mimeType="application/appx" />
      <mimeMap fileExtension=".msix" mimeType="application/msix" />
      <mimeMap fileExtension=".appxbundle" mimeType="application/appxbundle" />
      <mimeMap fileExtension=".msixbundle" mimeType="application/msixbundle" />
      <mimeMap fileExtension=".appinstaller" mimeType="application/appinstaller" />
    </staticContent>
  </system.webServer>
</configuration>
  • Wenn Sie die Installation über PowerShell (ohne erhöhte Rechte) ausführen, wird Add-AppxPackage -Appinstaller https://[test].azurewebsites.net/[appname].appinstallerdie App korrekt installiert und funktioniert anschließend einwandfrei.

  • Beim Verwenden von Fiddler habe ich beobachtet, dass die Installation über die Benutzeroberfläche zu einem 412-Fehler vom Server führt:

Anfrage:

GET https://[test].azurewebsites.net/[appname]_1.0.0.0_Test/[appname]_1.0.0.0_x64.msixbundle HTTP/1.1
Connection: Keep-Alive
Accept-Encoding: gzip, deflate
If-Match: W/"086c9a4cfd51:0"
Range: bytes=10878976-11010047
If-Unmodified-Since: Mon, 20 May 2019 20:42:56 GMT
Host:[test].azurewebsites.net

Antwort:

HTTP/1.1 412 Precondition Failed
Content-Length: 86
Content-Type: text/html
Last-Modified: Mon, 20 May 2019 20:42:56 GMT
Accept-Ranges: bytes
ETag: W/"086c9a4cfd51:0"
Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET
Date: Mon, 20 May 2019 20:21:12 GMT

The request was not completed due to preconditions that are set in the request header.
  • Der PowerShell-Client scheint die If-Unmodified-Since- oder If-Match-Header nicht zu senden.
GET https://[test].azurewebsites.net/[appname]_1.0.0.0_Test/[appname]_1.0.0.0_x64.msixbundle HTTP/1.1
Connection: Keep-Alive
Range: bytes=11079260-11145819
User-Agent: App Virt Client/1.0
Host: [test].azurewebsites.net

Angesichts des oben Gesagten:

  • Übersehe ich eine offensichtliche Serverkonfiguration zum Hosten einer UWP .appinstallerunter IIS?
  • Gibt es ein bekanntes Problem beim Sideloading von UWP-Anwendungen über die .appinstallerBenutzeroberfläche?
  • Gibt es eine Möglichkeit, IIS so zu konfigurieren, dass die Vorbedingungen ignoriert werden, um zu testen, ob diese das Problem verursachen?

BEARBEITEN:

Es wurde eine Protokolldatei gefunden ( AILog.txt):

[Tue May 21 15:40:17 2019]{10188} Manifest Info -> Package is Not Headless
[Tue May 21 15:40:17 2019]{10188} Manifest Info -> Package is Not a Modification Package
[Tue May 21 15:40:17 2019]{10188} ERROR: AppsInfo -> Error: [0x80004005]

BEARBEITEN 2:

Nach langen Untersuchungen habe ich einen funktionierenden Build mit vergleichsweise wenigen Änderungen:

  • EnableDotNetNativeCompatibleProfile(Ich habe dies auf eingestellt true)
  • RuntimeIdentifiers(Ich habe diese in die .csproj-Datei eingefügt)
  • Erstellen Sie aus VS2017 statt VS2019

Hoffentlich wird durch ein Ausschlussverfahren herausgefunden, welcher davon der Übeltäter ist.

verwandte Informationen