Kinook Software Forums

Go Back   Kinook Software Forums > Visual Build Professional > [VBP] Third Party Tools

Reply
 
Thread Tools Rate Thread Display Modes
  #1  
Old 04-07-2009, 04:21 PM
trailway trailway is online now
Registered User
 
Join Date: 04-07-2009
Posts: 26
VB6 binary compatibility

I am using Visual Build 6.7 and am building VB6 projects which are built using binary compatibility.

Sometimes binary compatibility is unavoidable. When I build such a project using VB6 itself, I am warned that compatibility will be broken and am able to proceed with the build. In this case, VB6 modifies the major version of the embedded type library which is correct. This is important to me because if I use tlbimp to generate an interop DLL for consumption by .NET, the version of the resulting DLL is the version of the embedded type library. The version of the interop is critical for me because I am doing a patch build (msp) and if the version is not incremented then it will not be recognized as a change by the Windows Installer.

So… is there any way that I can tell Visual Build to build the VB6 DLL even if binary compatibility is broken? In essence, I want the same behavior (sans the dialog) that occurs when using VB6 interactively.
Reply With Quote
  #2  
Old 04-07-2009, 05:12 PM
kinook kinook is online now
Administrator
 
Join Date: 03-06-2001
Location: Colorado
Posts: 5,225
If binary compatibility has been broken, you could build explicitly change to project/no compatibility before (Compatibility tab) and then set back to binary compatibility after building, but the VB6 command-line compiler (vb6.exe, what the Make VB6 action ultimately invokes to compile a VB6 project) doesn't provide a way to break and build with binary compatibility.
Reply With Quote
  #3  
Old 02-09-2012, 01:53 PM
saurabh saurabh is online now
Registered User
 
Join Date: 02-09-2012
Posts: 13
I have the same issue with compiling in binray compatibility. And I'm handling that the same way as mentioned above.
But now I have another a different issue. I need to compile few VB6 projects using command line (from visual build pro).
Can you tell me what is the option to sepcify the compatibility mode in which I need to compile the VB project (binary or no compatibility)

Thanks in advance!

-Saurabh
Reply With Quote
  #4  
Old 02-09-2012, 02:10 PM
kinook kinook is online now
Administrator
 
Join Date: 03-06-2001
Location: Colorado
Posts: 5,225
VB6.exe doesn't have a command-line option for that. You can specify the compatibility settings on the Compatibility tab of the Make VB6 action.
http://www.kinook.com/VisBuildPro/Ma...ibilitytab.htm
Reply With Quote
  #5  
Old 02-09-2012, 02:19 PM
saurabh saurabh is online now
Registered User
 
Join Date: 02-09-2012
Posts: 13
yes I can do that using Make VB6 action in VBP. But I have a compulsion here to compile few projects using command line. And using command line compilation, the default settings in the project .vbp will be picked. We do not have the flexibility of specifying the compat mode if we dont know how to do that. And you just confirmed that there is no option for that using command line. God help me please.
Reply With Quote
  #6  
Old 02-09-2012, 02:21 PM
kinook kinook is online now
Administrator
 
Join Date: 03-06-2001
Location: Colorado
Posts: 5,225
Why not just use the Make VB6 action to build the project file, since it will modify the .vbp file as needed and then call vb6.exe to actually compile the project?
Reply With Quote
  #7  
Old 02-09-2012, 02:29 PM
saurabh saurabh is online now
Registered User
 
Join Date: 02-09-2012
Posts: 13
yeah I have the compulsion of not using Make VB6 to compile VB projects. Thats coz it was found that the DLL/OCX created produced some appln defects (like some icons not showing properly etc). And the same projects when compiled from the IDE or from command line, produced no such defects.
Hence I'm forced to use command line compilation for VB projects alone.

I'm handling binary break scenarios also from the build script. If a project fails to compile, continue the build, check for its error log. If the error matches with what I have stored in 2 macros (binary breaks have typical error messages), then compile the project in NO COMPAT MODE, and then compile in BINARY mode and then go back to the next project in loop and start compiling again.

Note - If the project failed due to some other reason (like compilation error, file missing etc etc and not due to binary break), then stop the build.

So during build, I can not manually change the project settings temporarily. I need to do that using script only.
Reply With Quote
  #8  
Old 02-09-2012, 02:33 PM
kinook kinook is online now
Administrator
 
Join Date: 03-06-2001
Location: Colorado
Posts: 5,225
That's odd, since the Make VB6 action actually calls vb6.exe to compile, so I'm not sure how it could produce different results than calling vb6.exe directly (you can see the command-line it uses to build by checking the 'Log the command-line' option on the Options tab). At any rate, you can use the Make VB6 action to change compatibility setting in the project file but not build (check the 'Don't build the project(s)' option on the Project/Group tab).
Reply With Quote
  #9  
Old 02-09-2012, 02:55 PM
saurabh saurabh is online now
Registered User
 
Join Date: 02-09-2012
Posts: 13
wow! this can help me i guess.
first change the compat settings and dont build it using Make VB6 action.
in next step build it with the settings having been checked in the previous step.

I would need to check now if the change in settings in the first step would save the project file and be available in the next step or not.
Reply With Quote
Reply

Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



All times are GMT -5. The time now is 08:27 PM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.
Copyright © 1999-2014 Kinook Software, Inc.