PDA

View Full Version : VB6 No Compatability Issues


Checksum
07-20-2004, 10:58 AM
I am attempting to automate the build of a large project consisting of many COM/ActiveX components written in VB6 of which some contain references to other components within the project group. All of the projects use binary compatibility and everything works great.

However, we would like to permit developers to add new components and have existing/old components reference those new components. When doing a build for release with some new components, we want them to be compiled with no compatibility on our build machine for the first time and later set to binary compatibility.

When testing this, I've determined which projects are new ( missing binary compatibility files ), set those projects to no compatibility and tried to build the group. VisualBuild does not appear to be fixing up the missing references no compatibility causes with the components that reference the new components. Thus when these new components are built, the other components that reference them to fail to build, but it does appear to determine the build order correctly.

It was my understanding that VisualBuild should fix up the references when building with no compatibility, but it doesn't appear to be the case. Might this be added/fixed in later versions of VisualBuilds? or can someone suggest a workaround? I could fixup the references in script if an event handler would fire when a single project within a group is built.

kinook
07-20-2004, 12:08 PM
http://www.kinook.com/Forum/showthread.php?threadid=480

Checksum
07-21-2004, 08:32 AM
I have looked at that script, and the only thing that I am really doing different is that I am not registering any of the previously built components. This shouldn't be necessary if VisualBuild would update the TLB guid reference in other projects by looking at the filename part of the reference, read the TLB guid from the binary itself, and update the vbps with that new guid, when a referenced project is built with no compatibility.

In case that is not the issue, I have attached the non-working script + projects.

kinook
07-21-2004, 09:46 AM
You will need to register the referenced executables before building, as shown in the sample. The filename found in a VBP reference line cannot be relied on, since it doesn't necessarily reflect where the executable actually is (only where the executable happened to be the last time the VBP was saved in the IDE). Also see http://www.kinook.com/Forum/showthread.php?threadid=57 for some alternatives to dealing with VB6 compatibility issues for large applications.