javascript windows-runtime win-universal-app uwp

javascript - Su project.json no lista ''win10'' como un tiempo de ejecución específico



windows-runtime win-universal-app (2)

Odio el envío, pero pensé que publicar en el foro de MSDN era lo correcto, ya que parece que no hay mucha gente trabajando en aplicaciones UWP con HTML / JavaScript, pero como no tenía respuestas, recurrí a La gran comunidad de SO por ayuda.

Problema:
Tengo una aplicación UAP muy simple en HTML / JavaScript que tiene una referencia a un componente de tiempo de ejecución de Windows que tiene una referencia a una biblioteca de clases.

Necesito proyectar para ejecutarme en PC y / o móviles, así que necesito compilarlo con Cualquier CPU. El problema es que cada vez que quiero compilar mi aplicación aparece el siguiente error:

Your project.json doesn''t list ''win10'' as a targeted runtime. You should add ''"win10": { }'' inside your "runtimes" section in your project.json, and then re-run NuGet restore.

Y si agrego la entrada simple de win10 en tiempos de ejecución, obtengo muchos otros errores. Así es como se ve mi proyecto.json:

{ "dependencies": { "Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0" }, "frameworks": { "uap10.0": { } }, "runtimes": { "win10-arm": { }, "win10-arm-aot": { }, "win10-x86": { }, "win10-x86-aot": { }, "win10-x64": { }, "win10-x64-aot": { } } }

Además, hay un mínimo de reproducción here si alguien está interesado en comprobarlo.


AnyCPU ya no es una configuración válida para aplicaciones UWP administradas (C # / VB). Esto se debe a que todo el código administrado (exe o dlls) para una aplicación de UWP se compila mediante el uso de .NET Native toolchain para crear binarios específicos de arquitectura. Por lo tanto, si está utilizando un componente WinRT administrado en su aplicación HTML / JS UWP, también deberá configurar la arquitectura específica en su proyecto de aplicación según el dispositivo que está implementando, por ejemplo, x86 para escritorio, ARM para teléfono.


Tengo una configuración similar y el mismo problema exacto. Mi solución actual es configurar el compilador en x86 cuando se prueba en el escritorio y se cambia a ARM cuando se prueba en dispositivos móviles. Lejos de ser óptimo, pero si descubres algo mejor, me encantaría escucharte.

Según this publicación SO, AnyCPU no es compatible con las aplicaciones UWP / C #.

Además de asegurarse de probar con la compilación nativa de .NET, también puede notar que la configuración de compilación de AnyCPU ha desaparecido. Con .NET Native incorporado a la mezcla, AnyCPU ya no es una configuración de compilación válida porque la compilación nativa depende de la arquitectura. Una consecuencia adicional de esto es que al empaquetar su aplicación, debe seleccionar las tres configuraciones de arquitectura (x86, x64 y ARM) para asegurarse de que su aplicación sea aplicable a tantos dispositivos como sea posible.

Fuente: .NET Native: lo que significa para los desarrolladores de la plataforma universal de Windows (UWP)