WiX ICEvalidation错误
我在本地机器上遇到了与WiX有关的一些奇怪的问题。 问题是间歇性的,但在解决scheme的一些重build之后,WiX项目开始抛出ICEvalidation错误。
如果我进入我的AppData\Local\Temp
文件夹并删除所有包含MSI的临时文件夹,解决scheme再次编译。 不久之后,问题又开始发生了。 不得不清理临时文件夹不是一个可持续或令人满意的解决scheme。
有没有其他人遇到过这个问题? validation错误代码似乎总是ICE30,ICE38,ICE64和ICE91的组合
更新:
根据要求,以下是最近一次失败的条目:
错误LGHT0204:ICE38:ICE内部错误1002. API返回:1615。
错误LGHT0204:ICE38:错误2235:/OU.AppFramework.Includes.msi,_Profile,UPDATEDirectory
SET_Profile
= 0
错误LGHT0204:ICE64:ICE内部错误1001. API返回:1615。
错误LGHT0204:ICE64:错误2242:OU.AppFramework.Includes.msi,_Profile,ALTER TABLEDirectory
ADD_Profile
SHORT TEMPORARY HOLD
错误LGHT0204:ICE91:ICE内部错误1001. API返回:1615。
错误LGHT0204:ICE91:错误2242:OU.AppFramework.Includes.msi,_Profile,ALTER TABLEDirectory
ADD_Profile
SHORT TEMPORARY HOLD
有意思的是,这个失败发生在我昨晚离开办公室之前,今天上午来的时候解决scheme编译好了。 由于它似乎集中在由WiX构buildMSI的临时目录,它可能是locking文件的构build过程吗?
更新2:
现在我们又回到了600多个错误,主要是这个错误的重复:
错误LGHT0204:ICE30:ICE内部错误100. API返回:1615。
错误LGHT0204:ICE30:错误2235:AppFramework.Includes.msi,_ICE30SFN,SELECTDirectory_Parent
,Directory
,DefaultDir
,_ICE30SFN
,_ICE30LFN
从Directory
WHEREDirectory
。Directory
=? 和Directory_Parent
<>?
更新3:
即使经过@limpan的build议,问题仍然存在。 当灯光试图访问MSI时,由于MSI输出文件夹被locking而导致灯光发出一些警告:
警告549“\ AppData \ Local \ Temp \ 2opu3hxf”目录正在使用中,无法删除。 light.exe
尝试将<RunWixToolsOutOfProc>true</RunWixToolsOutOfProc>
到您的WiX项目文件。
我们遇到了同样的问题,并尝试了各种解决方法,包括删除临时文件和设置msbuild环境variables。 这些似乎都工作了一段时间,但最终(有时在几天之后)问题会再次回来。
我注意到在我的机器上,devenv.exe是lockinglight.exe试图删除的文件的进程。 我还偶然发现了一个无关的线程 ,提到这个项目设置,使WiX工具运行的过程。 我认为这可能值得一试,似乎已经为我们解决了这个问题(到目前为止…)
我也有这个问题,并在我的环境中解决它。
简短的回答:
添加环境variablesMSBUILDDISABLENODEREUSE=1
并重新启动Visual Studio
很长的回答:
在构build过程中出现了一个警告,我首先没有看到,因为我太在意这个错误:
无法删除临时目录:C:\ Users [用户名] \ AppData \ Local \ Temp \ 5 [uniqueFolderName] light.exe
我试图手动删除文件夹,但它被另一个进程使用。
事实certificate,许多MSBuild.exe进程在构build期间启动,然后不再closures。 你可以阅读更多关于这个原因,你可以做什么来改变堆栈溢出问题msbuild.exe保持打开,locking文件的行为 。
这个线程:它和这个线程的解决scheme:
我希望这个答案可以帮助别人。
对于ICE30:ICE内部错误100. API返回:1615 ,请尝试这个,看看它是否工作:
- closuresVisual Studio的所有实例(可能只是一个重要的事情,但以防万一)
- 转到
C:\Documents and Settings\\****user id****\\Local Settings\Temp\
。 - 清除所有像这样的文件夹。's12qgaks'。 基本上它包含MSI文件
- 打开解决scheme并重新编译。
祝你好运!
我也面临同样的问题。 在项目属性中,转到工具设置 ,然后单击取消ICEvalidation 。
对于我MSBUILDDISABLENODEREUSE = 1(或命令行上的/ nr:false)没有解决问题。 但<RunWixToolsOutOfProc> true </ RunWixToolsOutOfProc>完成了它的工作。
我遇到过同样的问题。 原来是我的防病毒软件(防毒墙networking版)它已经locking了Light.exe创build的中间文件,validation过程失败。 从病毒扫描中排除临时文件夹或closuresICEvalidation不是一个可接受的解决scheme。
如果有人有更好的解决scheme。 我想知道。