La instalación de la aplicación UWP falla a través de la interfaz de usuario, funciona en PowerShell

La instalación de la aplicación UWP falla a través de la interfaz de usuario, funciona en PowerShell

Estoy intentando distribuir una aplicación para UWP y me encontré con un problema ligeramente extraño.

  • La aplicación se crea desde Visual Studio utilizando la función de actualización automática, lo que da como resultado un .appinstallerarchivo y paquetes MSIX asociados, etc.
  • Estos artefactos se cargan en un servicio de aplicaciones de Azure para su distribución.
  • Al descargar y ejecutar el .appinstallerarchivo aparece el error Error in parsing the app package.; no es particularmente útil
  • La aplicación está firmada con un certificado que se instala enTrusted Publishers
  • El web.configarchivo en el servidor está configurado para asignar tipos MIME correctamente:
<?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>
  • Al ejecutar la instalación desde PowerShell (no elevado) Add-AppxPackage -Appinstaller https://[test].azurewebsites.net/[appname].appinstallerse instala correctamente la aplicación, que luego funciona bien.

  • Al usar Fiddler, observé que la instalación a través de la interfaz de usuario genera un error 412 del servidor:

Pedido:

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

Respuesta:

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.
  • El cliente de PowerShell no parece enviar los encabezados If-Unmodified-Sinceo If-Match.
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

Dado lo anterior:

  • ¿Me falta alguna configuración de servidor obvia para alojar una UWP .appinstalleren IIS?
  • ¿Existe algún problema conocido al descargar aplicaciones para UWP a través de la .appinstallerinterfaz de usuario?
  • ¿Hay alguna manera de configurar IIS para ignorar las condiciones previas, como prueba de si estas están causando el problema?

EDITAR:

Encontré un archivo de registro ( 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]

EDITAR 2:

Después de mucha investigación, tengo una versión funcional con comparativamente pocos cambios:

  • EnableDotNetNativeCompatibleProfile(Lo puse en true)
  • RuntimeIdentifiers(Los agregué al archivo .csproj)
  • Compilación desde VS2017 en lugar de VS2019

Esperemos que un proceso de eliminación identifique cuál de estos es el culpable.

información relacionada