Version 'item3' of 'item1' is not registered. The control will be upgraded to version 'item2'

Your project was saved with a version of the specified ActiveX control that is not available on your system. A newer version of the specified ActiveX control is registered on your system, so your project will be loaded using the newer version of this control.

In addition, this message may occur from time to time when you are authoring ActiveX controls with Visual Basic. The message is harmless and requires no action on your part, but can be avoided (described later).

The message may appear if the following circumstances occur:

  1. You compile your ActiveX control project to an .Ocx file.

  2. You create a test project in another copy of Visual Basic and use the Controls tab of the Components dialog box (accessed from the Project menu) to select the .Ocx file, which then appears in the Toolbox.

  3. You place an instance of a control on a form, and then save the test project.

  4. At some later date, you recompile the .Ocx file.

  5. When you open the test project, the message appears as the project is loaded.

Given the above events, the message occurs if you use the default Version Compatibility setting (Project Compatibility, on the Components tab of the Project Properties dialog box). The Project Compatibility setting causes the type library version number of a control component (.Ocx file) to be incremented each time you compile it. This setting allows easy upgrades of released controls.

Normally, when a new release of an .Ocx file is installed on a developer's computer, it does not replace the old version (because the file names are different). When the developer opens an existing project that uses the old version of the control, Visual Basic asks whether the control instances in the project should be upgraded to the new version.

In this case, there is no old version of the .Ocx file, so Visual Basic automatically upgrades the controls and provides a message informing you of this.

Note   The type library version number is not in any way associated with the file version number you set using the Make tab of the Project Properties dialog box. The numbers displayed in this message are the decimal equivalents of the hexadecimal type library version numbers stored in the Windows Registry.

The message requires no action on your part in this scenario, because Visual Basic automatically incorporates the new type library version number into the test project.

You can avoid the message in two ways:

Note   If you're creating a new version of an existing control, and you intend to make incompatible changes in the interface, binary compatibility may not be your best option; Project Compatibility is better in that case, because it preserves the ability of developers to upgrade the controls in their projects to your new version. You should change the file name, however, so that the new .Ocx file doesn't overwrite the old.

For more information on type library versions and the Version Compatibility feature, see "Version Compatibility" in "Debugging, Testing, and Deploying Components" in Creating ActiveX Components in the Component Tools Guide.