我在构建任何新创建的项目时遇到以下两个错误,或者对于使用Visual Studio 2013的Windows应用商店项目而言是旧的
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
将MSBuild项目构建输出详细程度转换为Diagnostic我看到以下内容
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.
知道如何解决这个问题吗?
答案 0 :(得分:5)
我必须设置VS2013工具>选项>项目和解决方案>构建并运行> MSBuild项目构建输出详细程度到Diagnostic
然后我意识到了这个
1>任务参数:MakePriExeFullPath = C:\ Program Files(x86)\ Windows Kits \ 8.0 \ bin \ x64 \ MakePri.exe(TaskId:86)
所以它使用的是错误版本的SDK。然后跟蒂姆豪雅说话,他告诉我 “开发人员告诉我这是因为SDK路径搞砸了,如果你从VS2012命令提示符打开VS,可能会导致它。”
就是因为我从powershell启动了VS2013,这是我的powershell配置文件中设置Visual Studio 2012命令提示符变量。当我把它改为Vs2013时,每个标志都开始正常工作了!
感谢Tim和开发团队!
答案 1 :(得分:0)
当我调用我从VS2012开发人员命令提示符尝试构建Windows 8.1应用程序时创建的Gradle脚本时,我遇到了类似的问题。
我继承的一个构建脚本包含vcvarsall.bat
的调用,这让我想知道这对我是否有帮助。事实上它确实如此,所以我制作了一个小批量脚本来做到这一点,并在一个中调用Gradle:
:: 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
我的build.gradle内部是一个调用MSBuild.exe
的任务。
它可能有点笨拙,但它允许我从2012开发人员命令提示符运行我的构建(这是我键入cmd
时默认运行的东西)。