Recently I was working with BizTalk Deployment Framework v5.0 for my BizTalk Sever 2009 projects and TFS 2010 Builds. I had followed all the steps mentioned in the BTDF documentation to create the build definition and also followed the steps to setup the Build Server with BTDF. After few hiccups I was stuck at this light.exe validation error. The detailed error is as below:
light.exe : error LGHT0217: Error executing ICE action 'ICE06'. The most common cause of this kind of ICE failure is an incorrectly registered scripting engine. See http://wix.sourceforge.net/faq.html#Error217 for details and how to solve this problem. The following string format was not expected by the external UI message logger: "The Windows Installer Service could not be accessed. This can occur if the Windows Installer is not correctly installed. Contact your support personnel for assistance."
I found few blog posts and forum answers out there which had steps to resolve the error but all of them mentioned different things. Like:
- Some mentioned that disable the validation itself so that the VBScript would not be called. (I didn’t want to disable the validation.)
- Another said to put NT AUTHORITY\NETWORK SERVICE in the local Administrators group but this is not recommended as it opens up network security holes.
But what actually worked for me was:
TFS Build Service Account was part of the Administrator group on the Build Server which is OK. But somehow it was also part of the IIS_IUSR Group. I removed the TFS Build Service Account from the IIS_IUSR group. Queued up my TFS Build but same error. Again after some digging, I found that I had not restarted the Visual Studio Team Build Service.
In a Nutshell:
- Remove TFS Build Service Account from IIS_IUSR Group.
- Restart the Visual Studio Team Build Service, either from Services or TFS Console.
Hope this resolves the issue for someone and not waste bunch of hours.