2010-09-27 27 views
11

我正在嘗試使用在Windows Server 2008 R2上運行的TFS 2010將WiX集成到我的自動構建解決方案中。一切似乎都很簡單,然後我得到:WiX:在構建服務器版本上構建神祕且難以診斷的ICE驗證錯誤

light.exe:執行ICE動作'ICE01'時出錯。這種ICE故障的最常見原因是註冊不正確的腳本引擎。有關詳細信息以及如何解決此問題,請參見http://wix.sourceforge.net/faq.html#Error217。外部UI消息記錄器不希望以下字符串格式:「無法訪問Windows Installer服務,如果Windows Installer安裝不正確,可能會發生這種情況,請聯繫您的支持人員尋求幫助。」

這很奇怪。但是,嘿!他們提供了一個鏈接。這應該有所幫助,對吧?

錯誤LGHT0217
在維克斯V3,燈自動validation-- Windows安裝程序內部一致性評估程序(ICE中)--AFTER每一個成功的構建運行。驗證是捕獲可能導致服務問題的常見編寫錯誤的好方法,這就是現在默認運行的原因。不幸的是,在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無法在煎鍋-1啓動Windows Installer服務。錯誤1297:服務需要正常運行的權限不存在於服務帳戶配置中。您可以使用服務Microsoft管理控制檯(MMC)管理單元(services.msc)和本地安全設置MMC管理單元(secpol.msc)查看服務配置和帳戶配置。

好吧,Windows,所以你告訴我,我的構建服務帳戶缺少一些模糊的權限,它需要啓動服務。讓管理員應該修復這個權利?不,那也行不通。

因此,我恢復到Windows Installer服務帳戶的本地系統。這一次,我將構建服務作爲本地管理員,並且成功!雖然這不是一個解決方案。

我的下一個想法是嘗試隔離構建服務實際需要的權限集來完成此操作。這將是一個很好的解決方案,而不必向管理員集添加更多帳戶。第1步:進入本地安全策略並將生成服務帳戶添加到當前提供給管理員的所有權限。從理論上講,應該允許構建成功,並且從那裏我可以有選擇地刪除權限,直到我隔離必須保留的所有權限才能成功。

不幸的是,即使擁有所有相同的權限,構建仍然會失敗,除非構建服務帳戶是本地管理員的成員。爲什麼是這樣?除了LSP之外,還有哪些其他的東西依賴於管理員組,我可以更改它以使我的構建服務帳戶與管理員保持等效關係?

當前結論:構建服務必須是管理員才能避免ICE驗證錯誤。

開放式問題:

  • 爲什麼我的權限隔離的想法工作?
  • 以域用戶的身份運行Windows Installer Service時,引發了什麼神祕的Error 1297?幾乎沒有我能找到的文件。
+0

剛剛發佈我的發現http://stackoverflow.com/q/1064580/33499 希望它會有所幫助。 – imagi 2012-03-15 15:17:08

+0

我今天在Win 8.1 Agent平臺上用WiX 3.8進行了測試。我並沒有像你那樣遇到同樣的問題,但我將其設置爲與所有其他代理相同,除了這個代理位於域中。這可能是罪魁禍首嗎?如果是這樣,你是如何解決它的? – 2015-05-19 01:52:49

回答

1

我也面臨同樣的問題。經過一番苦苦掙扎,我找到了解決方案,在WiX項目中抑制ICE驗證會使項目編譯。

+1

+1,另請參見[WiX 3.0在通過持續集成執行時​​拋出錯誤217](http://stackoverflow.com/q/1064580/33499) – wimh 2011-07-29 07:27:06

相關問題