【问题标题】:WiX: Mysterious and hard-to-diagnose ICE validation errors on build server buildWiX:构建服务器构建时出现神秘且难以诊断的 ICE 验证错误
【发布时间】:2011-04-17 14:08:14
【问题描述】:

我正在尝试使用在 Windows Server 2008 R2 上运行的 TFS 2010 将 WiX 集成到我的自动构建解决方案中。一切似乎都很简单,然后我明白了:

light.exe:执行 ICE 操作“ICE01”时出错。这种 ICE 故障的最常见原因是错误注册的脚本引擎。有关详细信息以及如何解决此问题,请参阅http://wix.sourceforge.net/faq.html#Error217。外部 UI 消息记录器不希望出现以下字符串格式:“无法访问 Windows Installer 服务。如果未正确安装 Windows Installer,可能会出现这种情况。请联系您的支持人员寻求帮助。”。

这很奇怪。但是,嘿!他们提供了一个链接。这应该有帮助,对吧?

错误 LGHT0217
在 WiX v3 中,Light 会在每次成功构建后自动运行验证——Windows Installer 内部一致性评估器 (ICE)。验证是捕获可能导致服务问题的常见创作错误的好方法,这就是它现在默认运行的原因。不幸的是,在 Windows Vista 和 Windows Server 2008 上发生了一个常见问题,可能导致 ICE 失败。有关原因和解决方法的详细信息,请参阅 Heath Stewart 的博客和 Aaron Stebner 的 WebLog。

一点也不。这些帖子只是描述了涉及脚本引擎注册的情况,而他们描述的情况并不存在。但是,我遇到了 Re: (WiX-users) Why do I get ICE failures building from a serviceaccount? (2010-01-14),这似乎表明如果我使用域帐户来运行 Windows Installer 服务,它就可以工作。听起来值得一试。

“无论出于何种原因,在 Windows 2008 上(我没有测试 Vista、XP、2003、7 或 2008 R2) MSI 服务仅可从具有 管理访问或“交互式”登录。登录 从没有管理权限的服务帐户不能 访问 msi 服务,因此无法运行 ICE 测试。”

但是,当尝试使用我的构建服务帐户启动 Windows Installer 服务时:

Windows 无法在 SKILLET-1 上启动 Windows Installer 服务。错误 1297:服务帐户配置中不存在服务正常运行所需的权限。您可以使用服务 Microsoft 管理控制台 (MMC) 管理单元 (services.msc) 和本地安全设置 MMC 管理单元 (secpol.msc) 来查看服务配置和帐户配置。

好的,Windows,所以你告诉我我的构建服务帐户缺少启动服务所需的一些模糊权限。使其成为管理员应该解决这个问题吗?不,这也不起作用。

因此,我将 Windows Installer 服务帐户恢复为本地系统。这次我将构建服务设置为本地管理员,瞧,成功了!不过,这几乎不是一个解决方案。

我的下一个想法是尝试隔离构建服务完成此操作实际需要的权限集。这将是一个很好的解决方案,而不必向管理员集添加更多帐户。第 1 步:进入本地安全策略并将构建服务帐户添加到当前授予管理员的所有权限。从理论上讲,这应该允许构建成功,并且我可以从那里有选择地删除权限,直到我隔离了所有必须持有的权限才能使其成功。

不幸的是,即使拥有所有相同的权限,除非构建服务帐户是本地管理员的成员,否则构建仍然会失败。为什么是这样?除了 LSP 之外,还有哪些其他东西依赖于管理员组,我可以更改这些依赖项以使我的构建服务帐户与管理员等效?

目前的结论:构建服务必须是管理员才能避免 ICE 验证错误。

开放式问题:

  • 为什么我的权限隔离想法不起作用?
  • 以域用户身份运行 Windows Installer 服务时抛出的这个神秘的 Error 1297 是什么?我几乎找不到这方面的文档。

【问题讨论】:

  • 刚刚将我的发现发布到stackoverflow.com/q/1064580/33499 希望对您有所帮助。
  • 我今天刚刚在 Win 8.1 代理平台上使用 WiX 3.8 遇到了这个问题。确切地说,我没有遇到与您相同的问题,但是我将这个设置为与我拥有的所有其他代理相同,除了这个位于域上。这可能是罪魁祸首吗?如果是这样,您是如何解决的?

标签: wix windows-installer tfsbuild wix3.5


【解决方案1】:

我也遇到了同样的问题。经过一番挣扎和谷歌搜索,我找到了在 WiX 项目中抑制 ICE 验证将使项目编译的解决方案。

猜你喜欢
  • 1970-01-01
  • 2012-12-08
  • 2013-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-24
相关资源
最近更新 更多