Getting VB6 to reveal which component doesn't have a design time license installed

It's worth trying both the Microsoft fixes - one and two - for this error, in case you've run into one of the known issues.

If that doesn't work, open the form designer for every single form in the VB6 IDE. Look out for an error message box on displaying a form. When this error is displayed, the IDE writes a log file formname.log that gives more information on which control caused the problem.


  1. Create a new, empty application with all the same references
  2. Confirm that you still have the same problem
  3. Delete the second half of the references
  4. If you still have the same problem, then the problem is with the references which remain. Go to 3
  5. If not, then the problem is with the references you deleted. Put them back. Delete one half of those you put back. Go to 2.

Basically, just a binary search, except it's really "binary delete".


All of the links of all of the answers are broken... And, some of us are still trying to either maintain or convert old VB6 applications (or both).

A somewhat useful tool was Process Monitor by Mark Mark Russinovich of Microsoft (it is sourced directly off of Microsoft.com and has been around for years). It allows you to monitor all resources used by the computer system wide, and allows you to filter that down to individual resources, processes, etc.

The useful bit is to start the program, and click the "Filter" button from the toolbar (Ctrl-L). From there, you need to add a rule. Select Path that begins with and that should be to the value "HKCR\Licenses". That is in the HKEY_CLASSES_ROOT section, where the Active-X components licensing information is. These should be set to Include.

Click Ok, and then click Clear on the toolbar (Ctrl-X) to clear all current events to reset the state. Events should already be populating that match that rule.

Then, invoke your build. To cut down on clutter, I used the command:

"C:\Program Files (x86)\Microsoft Visual Studio\VB98\vb6.exe" /make <project file> /outdir <exe dest dir>

Once the compile runs, the build should fail with the same message, but simply open the Process Monitor, and you can see that last key that tried to read and failed. The UUID that says not found is the UUID where the license should reside.

From there, you can:

  1. If your license allows, copy that value from a working PC and install it into the failing PC.
  2. Google that ID, to see if there are instructions on how to obtain the correct license (such as install it from one of the .REG files from the installation media)
  3. Obtain and install the license some other way

While it doesn't tell you exactly what component corresponds to that UUID, it at least lets you get the specific UUID that is failing, which is further than any of the other current answers can do in their current state.

Tags:

Vb6

Licensing

Dll