ICE30 error/warning bug during InstallAware build process
Posted: Wed Sep 08, 2010 12:15 am
We suppose that ICE30 errors/warnings (from ICE Checks integrated in InstallAware or validation within ORCA) may be a bug during InstallAware SFN creation in MSI file table creation. For general explanation:
ICE30 validates that the installation of components containing the same file never installs the file more than once in the same directory. Therefore ICE30 goes to every component in the Component table and then determines the component's target directory from the Directory table. It then checks to see which of these components install to the same target directory. Finally, it uses the File table to verify that none of the files in these components have the same name. So far, so good.
Let’s say we have to assemblies named (1) TheAssembly_1.dll and (2) TheAssembly_2.dll. As you can see both names are different.
Now let’s come to 8.3 SFN (Short File Names). From that point of view both file names are not different because of the first 8 characters seen from left, “TheAssem”. Normally this should not be a problem because during the build process it should be recognized (by InstallAware) and then changed to (1) TheAss~1 and (2) TheAss~2 in the MSI File table. This are also the common file names listed using the command “DIR /X” in a dos box (yellow rectangle):
We have created an example project and included two assemblies. Here’s a screen shot from ORCA validation showing the MSI file table:
As you can see (yellow rectangle) both SFN automatically created are “TheAss~1”, the second file name number was not accurate incremented to “TheAss~2”. This put’s an ICE30 error and may prevent from Windows 7 Software Logo Program.
We think the InstallAware’s build process is somehow inaccurate ... please help on that, but don’t advise changing the MSI file table manually ...
ICE30 validates that the installation of components containing the same file never installs the file more than once in the same directory. Therefore ICE30 goes to every component in the Component table and then determines the component's target directory from the Directory table. It then checks to see which of these components install to the same target directory. Finally, it uses the File table to verify that none of the files in these components have the same name. So far, so good.
Let’s say we have to assemblies named (1) TheAssembly_1.dll and (2) TheAssembly_2.dll. As you can see both names are different.
Now let’s come to 8.3 SFN (Short File Names). From that point of view both file names are not different because of the first 8 characters seen from left, “TheAssem”. Normally this should not be a problem because during the build process it should be recognized (by InstallAware) and then changed to (1) TheAss~1 and (2) TheAss~2 in the MSI File table. This are also the common file names listed using the command “DIR /X” in a dos box (yellow rectangle):
We have created an example project and included two assemblies. Here’s a screen shot from ORCA validation showing the MSI file table:
As you can see (yellow rectangle) both SFN automatically created are “TheAss~1”, the second file name number was not accurate incremented to “TheAss~2”. This put’s an ICE30 error and may prevent from Windows 7 Software Logo Program.
We think the InstallAware’s build process is somehow inaccurate ... please help on that, but don’t advise changing the MSI file table manually ...