Error de compilación MAKEPRI de la aplicación de la tienda de Windows 8.1

Sigo recibiendo los siguientes dos errores mientras construyo cualquier proyecto recién creado, o antiguo para proyectos de la Tienda Windows con Visual Studio 2013

Error   1   Initializing Indexer    c:\Temp\App4\App4\MakePri   App4
Error   2   Schema Validation Failed. The attribute 'targetOsVersion' on the element 'resources' is not defined in the DTD/Schema.  c:\Temp\App4\App4\MakePRI   App4

Convirtiendo la verbosidad de salida de compilación del proyecto MSBuild en Diagnóstico, veo lo siguiente

2>Using "GenerateProjectPriFile" task from assembly "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\AppxPackage\Microsoft.Build.AppxPackage.dll".
2>Task "GenerateProjectPriFile" (TaskId:159)
2>  Task Parameter:MakePriExeFullPath=C:\Program Files (x86)\Windows Kits\8.0\bin\x64\MakePri.exe (TaskId:159)
2>  Task Parameter:PriConfigXmlPath=obj\Debug\priconfig.xml (TaskId:159)
2>  Task Parameter:
2>      IndexFilesForQualifiersCollection=
2>          obj\Debug\layout.resfiles
2>          obj\Debug\resources.resfiles (TaskId:159)
2>  Task Parameter:ProjectPriIndexName=b3cbc7ac-25e8-4dda-a091-231a51997222 (TaskId:159)
2>  Task Parameter:InsertReverseMap=False (TaskId:159)
2>  Task Parameter:ProjectDirectory=C:\@Personal\Projects\Squeezy2\Squeezy\Squeezy\ (TaskId:159)
2>  Task Parameter:OutputFileName=C:\@Personal\Projects\Squeezy2\Squeezy\Squeezy\bin\Debug\resources.pri (TaskId:159)
2>  Task Parameter:QualifiersPath=obj\Debug\qualifiers.txt (TaskId:159)
2>  Task Parameter:IntermediateExtension=.intermediate (TaskId:159)
2>  Task Parameter:MultipleQualifiersPerDimensionFoundPath=obj\Debug\MultipleQualifiersPerDimensionFound.txt (TaskId:159)
2>  C:\Program Files (x86)\Windows Kits\8.0\bin\x64\MakePri.exe New -ProjectRoot "C:\@Personal\Projects\Squeezy2\Squeezy\Squeezy\\" -ConfigXml obj\Debug\priconfig.xml -OutputFile "C:\@Personal\Projects\Squeezy2\Squeezy\Squeezy\bin\Debug\resources.pri" -IndexName b3cbc7ac-25e8-4dda-a091-231a51997222 -Verbose -Overwrite   (TaskId:159)
2>  Option Verbose specified (TaskId:159)
2>  Option Overwrite specified (TaskId:159)
2>MakePri : error 0x80004005: Initializing Indexer
2>MakePRI : error 0xdef00501: Schema Validation Failed. The attribute 'targetOsVersion' on the element 'resources' is not defined in the DTD/Schema.

¿Alguna idea de como arreglarlo?

preguntado el 12 de febrero de 14 a las 07:02

Se está compilando con la versión de SDK incorrecta, 8.0 en lugar de 8.1. No dejaste ninguna pista para adivinar por qué sucede esto. -

@HansPassant Vi eso, pero no sé por qué VS2013 comenzó a hacer eso, lo hace con el antiguo proyecto 8.1 y también con uno nuevo que acabo de crear. ¿Alguna pista en qué dirección podría buscar? -

2 Respuestas

Tuve que configurar VS2013 Tools > Options > Projects and Solutions > Build and Run > Verbosidad de salida de compilación del proyecto MSBuild en Diagnóstico

Entonces me di cuenta de esto

1> Parámetro de la tarea: MakePriExeFullPath=C:\Program Files (x86)\Windows Kits\8.0\bin\x64\MakePri.exe (TaskId:86)

Entonces estaba usando la versión incorrecta del SDK. Luego, hablando con Tim Heuer, me dijo que "los desarrolladores me dicen que esto se debe a que la ruta del SDK está en mal estado y puede ser causado si está abriendo VS desde un símbolo del sistema VS2012, tal vez".

Eso fue porque inicié VS2013 desde powershell, que era la configuración en mi perfil de powershell, las variables del símbolo del sistema de Visual Studio 2012. Cuando lo cambié a Vs2013, ¡todo comenzó a funcionar correctamente nuevamente!

¡Gracias Tim y el equipo de desarrollo!

Respondido 12 Feb 14, 17:02

Tuve un problema similar cuando invoqué un script de Gradle que había creado desde el símbolo del sistema del desarrollador de VS2012 al intentar crear una aplicación de Windows 8.1.

Uno de los scripts de compilación que heredé contenía una invocación de vcvarsall.bat lo que me llevó a preguntarme si eso me ayudaría. De hecho, lo hizo, así que hice un pequeño script por lotes para hacerlo e invoqué a Gradle todo en uno:

:: build_winstore.bat - Build for Windows Store.
call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat
scripts\build\gradlew.bat %1 %2 %3 %4 %5 %6 %7 %8 %9

Dentro de mi build.gradle hay una tarea que invoca MSBuild.exe.

Es un poco torpe, tal vez, pero me permite ejecutar mi compilación desde el símbolo del sistema del desarrollador de 2012 (que es lo predeterminado que se ejecuta cuando escribo cmd).

Respondido 27 Feb 14, 20:02

Una advertencia que acabo de descubrir: aparentemente vcvarsall.bat seguirá añadiéndose a las variables de entorno, haciendo que crezcan y crezcan. Después de varias docenas de ejecuciones, mi archivo por lotes falló diciendo que la línea de entrada era demasiado larga. - amacleod

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.