[issue449] Win32 installer puts CRTL dll in wrong place

Larry Hastings mercurial-bugs at selenic.com
Tue Dec 12 09:47:07 CST 2006


New submission from Larry Hastings <larryathg at hastings.org>:

The current Win32 Mercurial installer (0.9.1-a27d90c9336e) available at
mercurial.berkwood.com attempts to install msvcr71.dll in the Windows system
directory (commonly "C:\Windows\System32").  This is bad form, and has been for
about eight years now; Microsoft recommends installing these DLLs into your
application's own directory.

For current best practices, please see Microsoft Knowledge Base article #326922,
"Redistribution of the shared C runtime component in Visual C++ 2005 and in
Visual C++ .NET".
http://support.microsoft.com/kb/326922

Also of interest is "DLL/COM redirection", which would help ensure that
Mercurial only sees the msvcr71.dll it installs locally.  See section "DLL/COM
redirection" in the article "Implementing Side-by-Side Component Sharing in
Applications (Expanded)":
http://msdn.microsoft.com/library/en-us/dnsetup/html/sidebyside.asp
and, for a more informal discussion, "The End of DLL Hell":
http://msdn.microsoft.com/library/en-us/dnsetup/html/dlldanger1.asp
To summarize this approach, just install msvcr71.dll in the Mercurial directory,
then touch two extra files in the Mercurial directory: "hg.exe.local" and
"w9xpopen.exe.local".

----------
assignedto: lcantey
messages: 2519
nosy: lcantey, lch
priority: bug
status: unread
title: Win32 installer puts CRTL dll in wrong place

____________________________________________________
Mercurial issue tracker <mercurial-bugs at selenic.com>
<http://www.selenic.com/mercurial/bts/issue449>
____________________________________________________



More information about the Mercurial-devel mailing list