Failed to Load Control. Version might be outdated.

I'm developing a desktop application using VB6

I've got a Standard EXE project, with a couple of forms and a couple of user controls in the one project.
When I compile it, the user controls are supposed to compile as one exe.

When I execute the exe on my pc, it is working, but on another pc I get the following error :

"Failed to load control 'UCButtonSmall' from .  Your version may be outdated.  Make sure you are using the version of the control that was provided with your application."

As far as I can see, the user control's properties are the same as all the other controls that are working.

I have uninstalled, reboot, re-install, recompile, but nothing!
Who is Participating?
judgekingConnect With a Mentor Commented:
I've had this problem too, the new PC doesn't have all the files your project or CTL file requires.

Sounds like you need to just build an installer package.  Do you have Visual Studio 2000 or greater?  If not, do you have Visual Studio Installer?  MS has removed the download from their website (it's a little old now, but so is VB6, right?), but you can still download it at the Webarchive at:
- download setup1.exe and setup2.exe

Create a new VB Installer project, and import your VB6 project from Project>Add VB Project Outputs.  It will pull in all the files your app references and build an installer package (MSI file).  It's a good tool, you can create shortcuts where you want, control install dialog boxes, etc.

Let me know if you have any problems.
Check if you have a different version in your GAC (%windir%\assembly). There should also be an option in your project when you select the reference to the control "Use Specific Version". Set it to false.
jayneeIT ManagerCommented:
Just a basic check - you have done an install on the second workstations, not just copied across the exe?
Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

Oh I didn't read the post well I suppose. I didn't notice it wouldn't work on another pc. Are you sure you copied all the dlls needed on the second computer? And as in my original post check the GAC. It might be that you have the dll there and that's why it works on yours and not on the second pc.
koossaAuthor Commented:
Please note, this is a usercontrol that was added to the project, it does not compile into a separate dll, it's compiled into the project exe.

There is nothing in %windir%\assembly
I don't see the "Use Specific Version", because the usercontrol is part of the exe, it is not in references or components.

I have build an install, but the install only copies the exe to the correct location and create a shortcut on the desktop.

The other vb retaled dlls are already on the machine.

koossaAuthor Commented:
When I run depends.exe on my exe, all the dlls are there without a problem.
jayneeIT ManagerCommented:
When you added the user control to the project, what file did you make reference to, in order to get it in? An OCX? OCA? DLL? That file is probably what should be distributed as part of your install, and registered with the target machine.
koossaAuthor Commented:
Create an new standard exe, now go to project, select add new user control.
When you compile the project the user control will be compiled into the exe.

When I open the .vbp file with notepad it reference to


So it is not referenced to a dll, ocx or oca file, but a ctl!
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.