[cvsnt] Re: Looking up *_protocol.dll

Bo Berglund bo.berglund at telia.com
Mon May 22 22:16:13 BST 2006


On Mon, 22 May 2006 16:23:29 -0300, Gabriel Genellina
<gagsl-cvsnt at yahoo.com.ar> wrote:

>For those who need to maintain two or more clients on the same 
>machine (for test purposes or whatever), it can be done using this 
>technique: 
>http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsetup/html/dlldanger1.asp
>In particular, this can be used to avoid incompatibilities between 
>the TortoiseCVS client and another CVSNT install on the same machine.
>
>Just create an empty file named cvs.exe.local in the same directory 
>containing cvs.exe (the client).
>
>This way, all DLLs are searched first from the application directory 
>- *even* if the LoadLibrary call has a specific path.
>This *should* work for all Windows versions supported by CVSNT, but 
>I've only tested it on XP SP2.
>
>BTW, in the standard case, when the .local file is absent, it appears 
>that ONLY *_protocol.dll are loaded from the registry location. 
>cvsapi.dll, cvstools.dll and others are always loaded from the 
>directory containing cvs.exe so the supposed layer separation is not 
>correctly implemented yet.
>

Very useful info indeed!
I usually keep many different binary versions of cvsnt in separate
folders just to be able to test against problems that pop up along the
way. And recently the problem of this dll load has worried me.
How can I check that the dll's actually do load from the local folder
after putting the cvs.exe.local file there?
Or put in another way: is there a way to give a command that will fail
if the dll loads from the registry location (that contains the latest
testing release 2.5.03.2330)?

HTH

/Bo
(Bo Berglund, developer in Sweden)



More information about the cvsnt mailing list