Windows 错误0x80070005:添加磁贴失败,在Jenkins上运行WACK时出现意外错误
尝试在执行Windows批处理命令的Jenkins会话中未安装的应用程序上运行appcert(WACK)时,在此处获取“错误0x80070005:添加磁贴失败,出现意外错误”。我编写了一个简单的C#包装器,用于在提升的用户模式下调用appcert。包装器和基本命令行在Jenkins之外的未提升cmd窗口中的同一个框中工作。。。挠头Windows 错误0x80070005:添加磁贴失败,在Jenkins上运行WACK时出现意外错误,windows,batch-file,jenkins,wack,Windows,Batch File,Jenkins,Wack,尝试在执行Windows批处理命令的Jenkins会话中未安装的应用程序上运行appcert(WACK)时,在此处获取“错误0x80070005:添加磁贴失败,出现意外错误”。我编写了一个简单的C#包装器,用于在提升的用户模式下调用appcert。包装器和基本命令行在Jenkins之外的未提升cmd窗口中的同一个框中工作。。。挠头 "C:\Program Files (x86)\Windows Kits\10\App Certification Kit\appcert.exe" reset i
"C:\Program Files (x86)\Windows Kits\10\App Certification Kit\appcert.exe" reset
if %errorlevel% neq 0 exit /b %errorlevel%
"C:\Program Files (x86)\Windows Kits\10\App Certification Kit\appcert.exe" test -appxpackagepath %WORKSPACE%\UWP_0.9.%BUILD_NUMBER%.0_x86_x64_arm.appxbundle -reportoutputpath %WORKSPACE%\wack.xml
if %errorlevel% neq 0 exit /b %errorlevel%
16:32:04 Successfully reset the testing configuration.
16:32:11 Beginning execution of task Detect app type from package.
16:32:11 Task Detect app type from package execution result was success.
16:32:11 Note: Test application type - UapApp.
16:32:11 Beginning execution of task Extract files from package.
16:32:11 Beginning execution of task Performs AppX deployment/cleanup in the IDE scenario..
16:32:11 Task Extract files from package execution result was success.
16:32:11 Root "Trusted Root Certification Authorities"
16:32:11 Signature matches Public Key
16:32:11 Related Certificates:
16:32:11
16:32:11 Exact match:
16:32:11 Element 7:
16:32:11 Serial Number: 1b659911670d2b9f436f7b922e12ed51
16:32:11 Issuer: CN=ED346674-0FA1-4272-85CE-3187C9C86E26
16:32:11 NotBefore: 1/10/2017 4:01 PM
16:32:11 NotAfter: 1/10/2018 10:01 PM
16:32:11 Subject: CN=ED346674-0FA1-4272-85CE-3187C9C86E26
16:32:11 Signature matches Public Key
16:32:11 Root Certificate: Subject matches Issuer
16:32:11 Cert Hash(sha1): 7a 5f 2f 31 7a 88 82 fd e5 12 f6 fb 2d 37 46 1f 29 ff
01 ef
16:32:11
16:32:11 Certificate "ED346674-0FA1-4272-85CE-3187C9C86E26" already in store.
16:32:11 CertUtil: -addstore command completed successfully.
16:32:11 Task Performs AppX deployment/cleanup in the IDE scenario.
execution result was failure.
16:32:11
16:32:11 error 0x80070005: Adding a tile failed with unexpected error.
我自己无法验证它,但很可能下面缺少双引号的命令行是失败的原因
"C:\Program Files (x86)\Windows Kits\10\App Certification Kit\appcert.exe" test -appxpackagepath %WORKSPACE%\UWP_0.9.%BUILD_NUMBER%.0_x86_x64_arm.appxbundle -reportoutputpath %WORKSPACE%\wack.xml
使用%WORKSPACE%
引用两次的环境变量WORKSPACE
的值包含当前Jenkins作业的当前工作区文件夹的完整路径
我假设这个文件夹路径包含1个或多个空格,需要将两个参数字符串都用双引号括起来才能正确地传递给appcert.exe
在这种情况下,此命令行肯定更好:
"%ProgramFiles(x86)%\Windows Kits\10\App Certification Kit\appcert.exe" test -appxpackagepath "%WORKSPACE%\UWP_0.9.%BUILD_NUMBER%.0_x86_x64_arm.appxbundle" -reportoutputpath "%WORKSPACE%\wack.xml"
然而,我用我最喜欢的www搜索引擎进行了一次非常简单、快速的搜索,发现在许多其他页面中,错误代码0x80070005的字面意思是“拒绝访问”在资源上。
如果%errorlevel%neq 0退出/b%errorlevel%
可以替换为如果errorlevel 1退出/b
,其功能完全相同,但速度稍快。如果和退出命令不会更改上一个命令/应用程序的当前错误级别(退出/返回代码)<代码>如果errorlevel 1表示如果上一个命令的退出代码大于或等于1,则。。。应用程序通常不会以负值退出。在命令提示窗口中运行,如果/?
,请参阅Microsoft支持文章。