views:

49

answers:

1

I came across some vague information about creating an ICE for an InstallShield project, but I don't understand what they are used for. How does an ICE test an installer? Can it be used on InstallScript projects? InstallScript MSI projects?

Is it like a unit test framework?

+1  A: 

ICEs are made of custom actions that evaluate static data in a built MSI file. They check things that need to be true, but the database schema cannot enforce. In this sense, it's somewhat like a unit test for a database, but doesn't test a lot of things, such as any of the code for custom actions. InstallScript projects do not create an MSI, so ICEs cannot be used; however InstallScript MSIs do create an MSI.

The information you came across likely suggests using them to enforce additional business rules you may have. For example you could write ICEs to check that INSTALLDIR uses your company's name, or that all .myext files are not installed beneath ProgramFilesFolder.

Michael Urman

related questions