WiX ICE验证错误

lev*_*nis 66 wix ice-validation

我在本地机器上遇到了一些奇怪的问题.问题是间歇性的,但经过一些解决方案的重建后,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 DirectorySET _Profile= 0
错误LGHT0204:ICE64:ICE内部错误1001. API返回:1615.
错误LGHT0204:ICE64:错误2242:OU.AppFramework.Includes.msi,_Profile,ALTER TABLE DirectoryADD _ProfileSHORT TEMPORARY HOLD
错误LGHT0204:ICE91:ICE内部错误1001. API返回:1615.
错误LGHT0204:ICE91:错误2242: OU.AppFramework.Includes.msi,_Profile,ALTER TABLE DirectoryADD _ProfileSHORT TEMPORARY HOLD

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

更新2:

现在我们又回到600多个错误,大多数重复这个错误:

错误LGHT0204:ICE30:ICE内部错误100. API返回:1615
错误LGHT0204:ICE30:错误2235:AppFramework.Includes.msi,_ICE30SFN,SELECT Directory_Parent,Directory,DefaultDir,_ICE30SFN,_ICE30LFNFROM DirectoryWHERE Directory.Directory=?AND Directory_Parent<>?

更新3:

即使在尝试了@limpan的建议后,问题仍然存在.当灯光试图访问MSI时,由于MSI输出文件夹被锁定而导致灯光发出一些警告:

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

小智 61

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

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

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

  • 对于那些不确定标签是否位于文件顶部的`<PropertyGroup> </ PropertyGroup>`标签内的人 (7认同)
  • 哇将它添加到我的Setup.proj文件,再也没有遇到过这个问题.非常感谢你非常讨厌关闭visual studio,删除临时的.msi文件并重新加载visual studio. (2认同)
  • 进一步说明:将<RunWixToolsOutOfProc> true </ RunWixToolsOutOfProc>添加到.wixproj文件中的第一个PropertyGroup. (2认同)

小智 47

我也遇到过这个问题并在我的环境中解决了这个问题.

简短回答:

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

答案很长:

在构建期间有一个警告,我第一次没看到,因为我太专注于错误:

无法删除临时目录:C:\ Users [用户名]\AppData\Local\Temp\5 [uniqueFolderName] light.exe

我试图手动删除该文件夹,但它正被另一个进程使用.

事实证明,许多MSBuild.exe进程在构建期间启动,然后不再关闭.您可以阅读更多有关其原因以及如何在Stack Overflow问题中更改该行为的问题msbuild.exe保持打开状态,锁定文件.

这个帖子:它和这个帖子中的解决方案:

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


小智 18

对于ICE30:ICE内部错误100. API返回:1615,请尝试这个,看看它是否有效:

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

祝好运!


Sun*_*wal 9

我也面临同样的问题.在项目属性中,转到" 工具设置",然后单击" 抑制ICE验证".

在此输入图像描述