Create your own (and fix) a Validation Error.
Here is how - Go to Installation Expert \ Add/Remove Programs. Add an Icon to the application uninstall. Choose a '.exe' or 'dll' in the installation and a icon within the exe. This action will create a new Component in the installation. Save and compile your application.
Run a validation test and you will get the following error. This is how
the Validation Error reads;
“Mismatched component reference. Entry 'registry1' of the Registry table belongs to component 'registry1'. However, the formatted string in column 'Value' references file 'GmacRfcPro.exe' which belongs to component 'GmacRfcPro.exe'. Components belong to different features ice69.html Registry Value registry1”
In my example, the icon I choose to use is from and executable called GmacRfcPro.exe, and it created a new Component called “Registry1”.
Here is what the manual has to say about the error -
ICE69
ICE69 checks that all substrings of the form [$componentkey] within a formatted
Problems with cross-component referencing arise from the way formatted strings are evaluated. If the component referenced with the [$componentkey] property is already installed and is not being changed during the current installation (for example, being reinstalled, moved to source, and so forth), the expression [$componentkey] evaluates to null, because the action state of the component in [$componentkey] is null. Similar problems can occur during upgrade and repair operations.
Result
ICE69 returns an error if a [$componentkey] substring within a formatted string cross-references a component in another feature. ICE69 returns a warning if a [$componentkey] substring within a formatted string cross-references a component in the same feature.
(The FeatureComponents
Step 1
Reread the error as -
Mismatched component reference.
Entry 'registry1' of the Registry table belongs to component
'registry1'.
However, the formatted string in column 'Value' references file
'GmacRfcPro.exe' which belongs to component 'GmacRfcPro.exe'.
Components belong to different features .
ice69.html Registry Value registry1
Evaluation: ICE69
Step 2
go to Setup Editor
go to the Tables Tab
go to the Registry Table.
Check out the Registry1 entry.
Step 3 - Check out the Value Column
the value in my case = [#GmacRfcPro.exe],0
The Registry Key in question was created when I added a Icon 0 to the
Add/Remove Program List. (Installation Expert \ Add/Remove Programs)
It created it's own Feature for the Registry Key called Registry1.
Solution
go to Setup Editor
go to Components
Move the contents of Registry Entries from the "Registry 1" Component
to the "GmacRFCPro.exe" component.
Delete the Registry1 component -
If you don't Delete the old "Registry1" component, you will get the error
below when you rerun the Validation test. That is why you need to run the
test a second time to see that your fix did not create more problems than
you fixed.
Registry: 'registry1' cannot be the key registry key for Component:
'registry1'.
The RegKey belongs to Component: 'GmacRfcPro.exe' ice02.html Component
KeyPath registry1
Evaluation: ICE02
Save Recompile and rerun, the Validation test
Read the error as phrases. The error is complied from a log which doesnÂ’t extract full sentences. Check the manual for clues. Backup your project, and change one thing at a time, save, and test again.
Comments