Richard, We're recompiling everything every time, and fix all references before compiling (hack the GUID of all ref's out of the registry and fixing in the VBP file).
Yeah, I know, I'm dangerous;0)... Thanks, Eric --- "Foster, Richard - PAL" <[EMAIL PROTECTED]> wrote: > Eric, > > One thing I ran into... I would *strongly* suggest > that you do not > compile your dll to the same location as that > pointed to by the > compatibility reference. If you do, and run into a > compilation problem > you can (and probably will) end up in a situation > where you cannot > recover the GUID's, and have to reset your > references on all > "downstream" projects. > > As often happens, there are two schools of thought > about how to best > handle compatibility files. The first states that > the binary > compatibility file should be updated manually, and > only when an > interface actually changes. This is the one I have > had most success > with... But you can get into trouble if someone > *should* have updated > the compatibility file (because they introduced a > new method, or changes > a method signature) and hasn't. > > The other option is that when the project is rebuilt > successfully, the > binary compatibility file should always be updated. > If you choose this > option, want to store the compatibility file in > source code control (a > good idea, IMHO), and are using continuous > integration tools, then you > will need to consider the location carefully (or use > appropriate > filtering) to prevent build loops. > > Regards, > Richard > > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On > Behalf Of John Cole > Sent: Monday, August 14, 2006 08:57 > To: 'Eric Fetzer'; Nant Users > Subject: Re: [NAnt-users] Conditional Compile based > on VB6 Return > > Eric, > If you're using project or binary compatibility, > you have to have the > original DLL (so VB can get its CSLID info). > > If your not, be sure that isn't set in the VBP, > otherwise you get that > second error. > > John > > > -----Original Message----- > From: Eric Fetzer [mailto:[EMAIL PROTECTED] > Sent: Friday, August 11, 2006 4:15 PM > To: John Cole; Nant Users > Subject: Re: [NAnt-users] Conditional Compile based > on VB6 Return > > John, > > I'm having a problem with the vb6.make task (the new > one). This task > complains if the dll that I'm compiling exists in > the first place. So, > I deleted the dll and used the task again. It now > complains when it > tries to set the version compatibility: > > Unable to set the version compatible component: > D:\MyProject\MyDll.dll > One or more of the properties in > 'D:\MyProject\MyVbp.vbp' was bad. Some or all of > the properties might > not be set correctly. > > (filenames changed to stay on the security dude's > good > side) > > Any clue what I need to do here? > > Thanks, > Eric > > --- John Cole <[EMAIL PROTECTED]> wrote: > > > Eric, > > We started using the newer try/catch tasks and > removed that section. > > > Here is our current vb6.make task: > > > > --------------------------------------- > > <target name="vb6.make"> > > <call target="vb6.fixvbp" /> > > > > <delete file="build.error" > > if="${file::exists('build.error')}" /> > > > > <!-- write out ref file --> > > <property name="tempexe32" > > value="${vbp::getvalue(vbp, > > 'ExeName32')}" /> > > <if test="${string::get-length(tempexe32) == > 0}"> > > <property name="tempexe32" > > value="${vbp::getvalue(vbp, 'Name')}" /> > > </if> > > <echo message="vbp: ${vbp}"/> > > <echo message="srcroot: ${srcroot}"/> > > <property name="exename32" > > value="${string::substring(tempexe32, 1, > > string::get-length(tempexe32) - > > 2)}" /> > > <echo > > > file="${path::combine(path::combine(srcroot,project.module), > > path::get-file-name-without-extension(exename32) + > '.ref')}" > > > message="${vbp::get-references(path::combine(srcroot,vbp), > > 'projects.txt')}" > > /> > > > > <property name="conditional.compile" value="" /> > > <property name="conditional.compile" value="/D > RELEASETYPE=1" > > if="${release.type == '1'}" /> > > <property name="conditional.compile" value="/D > RELEASETYPE=2" > > if="${release.type == '2'}" /> > > <property name="conditional.compile" value="/D > RELEASETYPE=3" > > if="${release.type == '3'}" /> > > <property name="conditional.compile" value="/D > RELEASETYPE=4" > > if="${release.type == '4'}" /> > > <property name="conditional.compile" value="/D > RELEASETYPE=5" > > if="${release.type == '5'}" /> > > > > <trycatch> > > <try> > > <exec program="vb6.exe" > > commandline="/m > > "${path::combine(srcroot,vbp)}" > > ${conditional.compile} /outdir > > > "${path::combine(srcroot,project.module)}" > > /out build.error" > > resultproperty="vb6.result" > > /> > > </try> > > <catch> > > <!-- if this is not a library, then just > fail --> > > <property name="vbp.type" > > value="${vbp::getvalue(vbp, '^Type=.*')}" /> > > <if test="${string::contains('.OleDll. > > .OleExe. .Control.', '.' + vbp.type + '.') == > false}"> > > <fail message="vb6.exe failed. > This is not a library, cannot > > switch compatiblity modes."/> > > </if> > > <trycatch> > > <try> > > <trycatch> > > <try> > > <!-- set > > compatiblity to project --> > > <echo > > message="${vbp::setvalue2(vbp, > '^CompatibleMode=.*', '"1"', > > '^MajorVer=.*', 'CompatibleMode=')}"/> > > > > <exec > > program="vb6.exe" > > > > commandline="/m > > "${path::combine(srcroot,vbp)}" > > ${conditional.compile} /outdir > > > "${path::combine(srcroot,project.module)}" > > /out build.error" > > /> > > </try> > > <catch> > === message truncated === __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ NAnt-users mailing list NAnt-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nant-users