#1
|
|||
|
|||
Automating the hassle of building VB project tree
I recently had a need to automate the process of building a hierarchy of dependant Visual Basic projects, most of which were ActiveX dll's or controls. Anyone who has ever dealt with VB in such a situation knows that this can be pure hell if binary compatibility gets out of whack. It was beginning to cost my development team substantial amounts of wasted time and effort keeping these binary compatibility issues straight.
To deal with this problem, I sat down and wrote a series of custom build steps and a library of objects that I used in these custom build steps. I also wrote some global subroutines in Visual Build Pro. With this, I was able to completely automate the building of my VB project tree, regardless of whether binary compatibility was in synch or not. It has turned out to be a great time saver. So I thought I'd offer it to other VBP users who may still be doing VB COM development. This package is available by clicking here. To use this package, you'll need to unzip the files to a directory on your hard drive. You'll need to run RegSvr32 on CdsiXUtils.dll, CdsiComUtils.dll, and VbBuildUtils.dll. Once you've done that, you'll need to copy the custom steps and macros from the VisBuildPro.steps and VisBuildPro.macros files into your global build steps and macros files. Next, you need to register the custom steps with VBP. I've provided a custom step that does that, and the included sample BLD file demonstrates how to do it. Finally, you'll need to call the subroutine to build your VB project. Again, the included BLD file demonstrates how to do that. I've included a sample project tree containing 5 VB projects that are dependant on one another for binary compatibility. If you break compatibility on one of them (remove a method/change parameters/etc.), this automated process should deal with it for you. Let me know if you have any trouble with it - it's a pretty complicated process and probably has some issues specific to our build environment. Last edited by Shawn; 01-09-2004 at 09:47 AM. |
|
|