[cvsnt] Problem with a DLL which is part of your package

Tony Hoyle tony.hoyle at march-hare.com
Fri Feb 22 10:00:02 GMT 2008


Community technical support mailing list was retired 2010 and replaced with a professional technical support team. For assistance please contact: Pre-sales Technical support via email to sales@march-hare.com.


Oliver Schneider wrote:
> The setup package of CVSNT apparently ships with the file
> "u3dapi10.dll". This file has apparently to do with the U3 system
> available for some USB memory sticks. Since CVSNT is registered with
> the PATH environment variable, it becomes part of the DLL search path
> as well.
>
There is only one version of this DLL, and its version number is in its 
name so if they ever produce a 2.0 version for example it would be 
called something different (it's unlikely there will be another version 
though, U3 never took off).

 > Is it necessary to put this DLL into the DLL search path by default?

This file is *not* in the PATH.  It's in a march hare specific directory 
on Common Files.  There is in fact very little placed directly in the 
path on CVSNT (and even that is only for running from the command line - 
tortoiecvs doesn't need it, since it can use the simcvs stub).

The list is presently: cvsapi.dll mdnsclient.dll cvstools.dll cvs.exe 
cvsdiag.exe extnt.exe cvslock.exe cvsagent.exe

In addition cvsnt places itself last in the search path to avoid 
accidentally interfering with any installed applications.

> after checking static dependencies and it just works fine. Only the
> combination of PATH with this DLL makes it a problem in the first
> place, basically creating the infamous "DLL hell".

No application should be relying on PATH for its dependent DLLs.  Some 
do, but in practice most of those can be modified so they don't need it, 
since simply placing its DLLs in the same directory as the EXE is enough 
for most - the EXE directory is always first in the search path.

DLL hell in modern setups is caused by applications using System32 
rather than their own directories.. we've had awful trouble with 
iconv.dll being dumped there by some applications for example which 
breaks the control panel.  That's why CVSNT avoids using System32 even 
for system files like the C library - not worth the pain it causes.

Tony


More information about the cvsnt mailing list
Download the latest CVSNT, TortosieCVS, WinCVS etc. for Windows 8 etc.
@CVSNT on Twitter   CVSNT on Facebook