WiX ICE 验证错误 [英] WiX ICE validation errors
问题描述
我的本地机器上的 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, UPDATEDirectory
SET_Profile
=0
error LGHT0204: ICE64: ICE Internal Error 1001. API Returned: 1615.
error LGHT0204: ICE64: Error 2242: OU.AppFramework.Includes.msi, _Profile, ALTER TABLEDirectory
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 TABLEDirectory
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_Parent
、Directory
、DefaultDir
、_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, SELECTDirectory_Parent
,Directory
,DefaultDir
,_ICE30SFN
,_ICE30LFN
FROMDirectory
WHEREDirectory
.Directory
=? ANDDirectory_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
推荐答案
尝试将
添加到您的 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屋!