views:

152

answers:

2

I've inherited a VB6 project that I'm trying to "Make".

The build fails on the "Making EXE" step with a licensing error:

License information for this component not found. 
You do not have an appropriate license to use this functionality 
in the design environment.

How can I figure out which component is missing the license?

The project has about 15 references; a mixture between commercial and Microsoft. I've installed development versions / licenses for all the obvious references - and checked that I can compile their sample apps successfully.

Of the remaining 13 odd references; how I can get more information as to which component is throwing the licensing error?

Any tips / techniques on how to get a more verbose error message would be greatly appreciated!

+2  A: 
  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".

John Saunders
I have no experience with VB6 or anything related, but this is a rock awesome answer!
blwy10
@blwy10: thanks, that's an "old dog" trick. We used to have no choice but to debug things this way.
John Saunders
I tried the "create empty solution with same references" technique. Irritatingly it compiles with no errors; leading me to suspect that I have to actually use a component from the reference before the license gets invoked. My problem is that I don't know what components come from which references...
David Laing
@David Laing: It's also possible that the unlicensed component is on a form. Form controls are referenced by the individual forms that use them, and won't show up under Project References. Therefore, you may also want to open up each form in the project. If there is an unlicensed control on a form, it will error out when you open that form in the IDE for the first time, if I remember right.
Mike Spross
Sorry, I meant to mention forms - you'll at least need to create dummy forms with the same controls. Hopefullly, you'll see the error when you open the individual form that has the problem - had you not tried that before?
John Saunders
+4  A: 

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.

MarkJ