WiX ICE 验证错误 [英] WiX ICE validation errors

查看:17
本文介绍了WiX ICE 验证错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的本​​地机器上的 WiX 出现了一些奇怪的问题.该问题是间歇性的,但在对解决方案进行几次重建后,WiX 项目开始抛出 ICE 验证错误.

I'm having some strange issues with WiX on my local machine. The problem is intermittent, but after a few rebuilds of the solution, the WiX project starts throwing ICE validation errors.

如果我进入我的 AppData\Local\Temp 文件夹并删除所有包含 MSI 的临时文件夹,该解决方案将再次编译.过了一会儿,问题又开始发生.必须不断清理临时文件夹不是可持续或令人满意的解决方案.

If I go into my AppData\Local\Temp folder and delete all the temporary folders that contain the MSI, the solution compiles again. A short while later, the problem starts happening again. Having to keep clearing down the temp folders isn't a sustainable or satisfactory solution.

有没有其他人遇到过这个问题?验证错误代码似乎总是 ICE30、ICE38、ICE64 和 ICE91 的组合

Has anyone else encountered this issue? The validation error codes seem to always be a combination of ICE30, ICE38, ICE64 and ICE91

更新:

根据要求,以下是最近失败的条目:

As requested, here are the entries from the most recent failure:

错误 LGHT0204:ICE38:ICE 内部错误 1002.API 返回:1615.
错误 LGHT0204: ICE38: 错误 2235:/OU.AppFramework.Includes.msi, _Profile, UPDATE Directory SET_Profile=0
错误 LGHT0204:ICE64:ICE 内部错误 1001.API返回:1615.
错误 LGHT0204:ICE64:错误 2242:OU.AppFramework.Includes.msi、_Profile、ALTER TABLE Directory 添加_Profile SHORT TEMPORARY HOLD
错误 LGHT0204: ICE91: ICE内部错误 1001.API 返回:1615.
错误 LGHT0204:ICE91:错误 2242:OU.AppFramework.Includes.msi、_Profile、ALTER TABLE目录 ADD _Profile SHORT TEMPORARY HOLD

error LGHT0204: ICE38: ICE Internal Error 1002. API Returned: 1615.
error LGHT0204: ICE38: Error 2235: /OU.AppFramework.Includes.msi, _Profile, UPDATE Directory SET _Profile=0
error LGHT0204: ICE64: ICE Internal Error 1001. API Returned: 1615.
error LGHT0204: ICE64: Error 2242: OU.AppFramework.Includes.msi, _Profile, ALTER TABLE Directory ADD _Profile SHORT TEMPORARY HOLD
error LGHT0204: ICE91: ICE Internal Error 1001. API Returned: 1615.
error LGHT0204: ICE91: Error 2242: OU.AppFramework.Includes.msi, _Profile, ALTER TABLE Directory ADD _Profile SHORT TEMPORARY HOLD

有趣的是,这个故障发生在我昨晚离开办公室之前,今天早上我进来时,解决方案编译OK.由于它似乎以 WiX 构建 MSI 的临时目录为中心,这可能是构建过程锁定了文件吗?

Interestingly, this failure occurred before I left the office last night, and the solution compiled OK when I came in this morning. As it seems to centre on the temp directory where the MSI is build by WiX, could it be the build process locking the file?

更新 2:

现在我们又回到了 600 多个错误,大部分是这个错误的重复:

And now we're back to over 600 errors, mostly repetition of this error:

错误 LGHT0204:ICE30:ICE 内部错误 100.API 返回:1615.
错误 LGHT0204:ICE30:错误 2235:AppFramework.Includes.msi,_ICE30SFN、SELECT Directory_ParentDirectoryDefaultDir_ICE30SFN_ICE30LFN FROM 目录 WHERE目录.目录=?AND Directory_Parent<>?

error LGHT0204: ICE30: ICE Internal Error 100. API Returned: 1615.
error LGHT0204: ICE30: Error 2235: AppFramework.Includes.msi, _ICE30SFN, SELECT Directory_Parent, Directory, DefaultDir, _ICE30SFN, _ICE30LFN FROM Directory WHERE Directory.Directory=? AND Directory_Parent<>?

更新 3:

即使尝试了@limpan 的建议,问题仍然存在.当 light 尝试访问 MSI 时,由于 MSI 输出文件夹被锁定,light 会发出几个警告:

The problem still exists even after trying the suggestion by @limpan. There are a couple of warning given by light that are caused by the MSI output folder being locked when light tries to access the MSI:

警告 549 目录\AppData\Local\Temp\2opu3hxf"正在使用中,无法删除.灯光.exe

Warning 549 The directory '\AppData\Local\Temp\2opu3hxf' is in use and cannot be deleted. light.exe

推荐答案

尝试将 true</RunWixToolsOutOfProc> 添加到您的 WiX 项目文件.

Try adding <RunWixToolsOutOfProc>true</RunWixToolsOutOfProc> to your WiX project file.

我们遇到同样的问题有一段时间了,并尝试了各种解决方法,包括删除临时文件和设置 msbuild 环境变量.这些似乎都有效了一段时间,但最终(有时几天后)问题会再次出现.

We've had the same issue for a while, and tried various workarounds including deleting the temporary files and setting the msbuild environment variable. These all appeared to work for a while, but eventually (sometimes after a few days) the problem would come back again.

我注意到在我的机器上 devenv.exe 是锁定 light.exe 试图删除的文件的进程.我还偶然发现了一个不相关的线程 其中提到此项目设置是为了使 WiX 工具无法运行.我认为这值得一试,它似乎已经为我们解决了这个问题(到目前为止......)

I noticed that on my machine devenv.exe was the process that was locking the files that light.exe was trying to delete. I also stumbled across an unrelated thread which mentioned this project setting to make the WiX tools run out of process. I thought it could be worth a try and it appears to have cured the problem for us (so far...)

这篇关于WiX ICE 验证错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆