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,UPDATE Directory SET _Profile = 0
错误LGHT0204:ICE64:ICE内部错误1001. API返回:1615。
错误LGHT0204:ICE64:错误2242:OU.AppFramework.Includes.msi,_Profile,ALTER TABLE Directory ADD _Profile SHORT TEMPORARY HOLD
错误LGHT0204:ICE91:ICE内部错误1001. API返回:1615。
错误LGHT0204:ICE91:错误2242:OU.AppFramework.Includes.msi,_Profile,ALTER TABLE Directory 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,SELECT Directory_ParentDirectoryDefaultDir_ICE30SFN_ICE30LFNDirectory WHERE DirectoryDirectory =? 和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 ,请尝试这个,看看它是否工作:

  1. closuresVisual Studio的所有实例(可能只是一个重要的事情,但以防万一)
  2. 转到C:\Documents and Settings\\****user id****\\Local Settings\Temp\
  3. 清除所有像这样的文件夹。's12qgaks'。 基本上它包含MSI文件
  4. 打开解决scheme并重新编译。

祝你好运!

我也面临同样的问题。 在项目属性中,转到工具设置 ,然后单击取消ICEvalidation

在这里输入图像说明

对于我MSBUILDDISABLENODEREUSE = 1(或命令行上的/ nr:false)没有解决问题。 但<RunWixToolsOutOfProc> true </ RunWixToolsOutOfProc>完成了它的工作。

我遇到过同样的问题。 原来是我的防病毒软件(防毒墙networking版)它已经locking了Light.exe创build的中间文件,validation过程失败。 从病毒扫描中排除临时文件夹或closuresICEvalidation不是一个可接受的解决scheme。

如果有人有更好的解决scheme。 我想知道。