维克斯ICE验证错误(WiX ICE validation errors)

2019-07-19 22:23发布

我有我的本地机器上的WiX一些奇怪的问题。 问题是间歇性的,但解决的几个重建之后,维克斯项目开始抛出ICE验证错误。

如果我进入我的AppData\Local\Temp文件夹,并删除所有包含该MSI的临时文件夹,该解决方案再编译。 过了一会儿,这个问题开始再次发生。 有保持清除下来的临时文件夹是不是可持续的,令人满意的解决方案。

有没有其他人遇到这个问题? 验证错误代码似乎总是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短暂持有
错误LGHT0204:ICE91:ICE内部错误1001 API返回:1615。
错误LGHT0204:ICE91:错误2242:OU.AppFramework.Includes.msi,_profile,ALTER TABLE Directory ADD _Profile短暂持有

有趣的是,在我昨天晚上离开办公室,当我来到这个早上的解决方案编译OK发生此故障。 因为它似乎在临时目录中的MSI是维克斯建设中心,也可能是构建过程锁定文件?

更新2:

而现在我们又回到了600的错误,主要是这个错误的重复:

错误LGHT0204:ICE30:ICE内部错误100 API返回:1615。
错误LGHT0204:ICE30:错误2235:AppFramework.Includes.msi,_ICE30SFN,选择Directory_ParentDirectoryDefaultDir_ICE30SFN_ICE30LFNDirectory WHERE DirectoryDirectory =? AND Directory_Parent <>?

更新3:

这个问题甚至@limpan尝试的建议后仍然存在。 有一对夫妇通过了由MSI输出文件夹引起的光给予警告被锁定当光线试图访问MSI:

警告549目录“\应用程序数据\本地的\ Temp \ 2opu3hxf”正在使用中,无法删除。 light.exe

Answer 1:

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

我们已经有一会儿了同样的问题,并尝试了各种解决方法,包括删除临时文件和设置的MSBuild环境变量。 这些都似乎工作了一段时间,但最终(几天后有时)问题将再次回来。

我注意到,我的机器上的devenv.exe是被锁定的是light.exe试图删除这些文件的过程。 我也是偶然发现一个不相关的线程里面提到这个项目的设置,使WiX的工具进程外运行。 我想这可能是值得一试,它似乎已经治好这个问题对我们(到目前为止...)



Answer 2:

我有这个问题,以及和解决它在我的环境。

简短的回答:

添加环境变量MSBUILDDISABLENODEREUSE=1 ,并重新启动Visual Studio

长一点的回答:

有生成过程中的警告,我第一次没有看,因为我太专注于错误:

无法删除临时目录:C:\用户[用户名] \应用程序数据\本地\ TEMP \ 5 [uniqueFolderName] light.exe

我试图手动删除该文件夹,但它是由另一个进程使用。

事实证明,很多MSBuild.exe进程的构建过程中启动,然后不再次关闭。 你可以阅读更多关于其中的原因和你可以做什么来改变堆栈溢出问题,该行为msbuild.exe保持开放,锁定的文件

这个线程:它在这个线程解决方案:

我希望这个答案可以帮助别人。



Answer 3:

对于ICE30:ICE内部错误100 API返回:1615,请试试这个,看看它的工作原理:

  1. 关闭Visual Studio中的所有实例(可能仅仅是一个问题,但以防万一)
  2. 转到C:\Documents and Settings\\****user id****\\Local Settings\Temp\
  3. 清除所有看起来像这样的文件夹..“s12qgaks”。 基本上,它包含的MSI文件
  4. 打开解决方案,并重新编译。

祝好运!



Answer 4:

我也遇到了同样的问题。 在项目属性,进入工具设置 ,然后单击禁止ICE验证



Answer 5:

对于我MSBUILDDISABLENODEREUSE = 1(或/ NR:假命令行上的)并没有解决问题。 但<RunWixToolsOutOfProc>真正</ RunWixToolsOutOfProc>并顺利完成任务。



Answer 6:

我遇到过同样的问题。 它原来是我的反病毒软件(防毒),它创造了由Light.exe锁定,验证过程失败的中间文件。 从病毒扫描中排除的临时文件夹或关闭ICE验证不是可接受的解决方案。

如果任何人有一个更好的解决方案。 我想知道。



文章来源: WiX ICE validation errors