Windows 错误0x80070005:添加磁贴失败,在Jenkins上运行WACK时出现意外错误

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

尝试在执行Windows批处理命令的Jenkins会话中未安装的应用程序上运行appcert(WACK)时,在此处获取“错误0x80070005:添加磁贴失败,出现意外错误”。我编写了一个简单的C#包装器,用于在提升的用户模式下调用appcert。包装器和基本命令行在Jenkins之外的未提升cmd窗口中的同一个框中工作。。。挠头

"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支持文章。