An MSI file built on Visual Studio fails during an installation with an error message
Error 1001. Exception occurred while initializing the installation:
System.IO.FileNotFoundException: Could not load file or assembly 'file:///C:\WINDOWS\system32\<file name>' or one of its dependencies. The system cannot find the file specified.
This would happen when the syntax of a ‘CustomActionData property’ for a Custom Action is incorrectly defined in the MSI.
Example: /target=”[TARGETDIR]”; /source= “[SOURCEDIR]”
When you are installing a Custom Action as an installation component or the project installer classes the CustomActionData Property should be in the format of /name=value. If the value is a Windows installer property it should be passed as /name=[PROPERTYNAME] and if the property returns a directory the syntax should be /name=”[PROPERTYNAME]\” .
Follow the below steps to resolve the issue.
1. We have to find out in which Custom Action the syntax has been defined incorrectly and for this we should generate a log file of the MSI installation. Follow the article http://support.microsoft.com/kb/223300 to generate a MSI log file.
2. Search for text ‘value 3’ in the log file. This is the return value for a failed action in an MSI.
3. Copy the custom action name which returned value 3.
4. Edit the MSI file using a MSI editor like Orca and search for the “%Custom Action%.SetProperty” in the Custom Action table. (%Custom Action% is the failed custom action name copied from the log file)
5. Choose the Target column in the row of “%Custom Action%.SetProperty” and see if there are any windows installer properties which return directories are given as values of a CustomActionData Property as mentioned above.
6. Make sure that all such values are following the syntax as /name=”[PROPERTYNAME]\” .
Example: /target=”[TARGETDIR]\” , /source=”[SOURCEDIR]\”.
After correcting the syntax CustomActionData Property the MSI shouldn’t throw the above error message anymore.
Content by : Sarat Chandra