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 string do not cross-reference components. A cross-component reference occurs when the [$componentkey] property of a formatted string refers to a component other than the component stored in the Component_ column of your tables.

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

table is used to determine this mapping. It must map to the same feature for the warning. Referencing components in parent features or referencing components in child features is considered to be an error.) ICE69 reports an error if the [#FileKey] substring within a formatted string references a file that is not present in the File

table.

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.