[Python-Dev] DLL in the system directory on Windows.

Mark Hammond mhammond@skippinet.com.au
Tue, 4 Apr 2000 18:59:02 +1000


> 2. Contra MS guidelines, install the app by default in
> C:\name_of_app\.

Ive got to agree here.  While I also see Greg's point, the savvy
user can place it where they want, while the "average user" is
better of with a more reasonable default.

However, I would tend to go for "\name_of_app" rooted from the
Windows drive.  It is likely that this will be the default drive
when a command prompt is open, so a simple "cd \python1.6" will
work.  This is also generally the same drive the default "Program
Files" is on too.

> You're using a std installer, and MS has rigid rules for
> these DLLs that the
> installer will follow by magic.  Small comfort if things
> break, but this one
> is (IMO) worth playing along with.

I checked the installer, and these MSVC dlls are indeed set to
install only if the existing version is the "same or older".
Annoyingly, it doesnt have an option for only "if older"!  They are
also set to correctly reference count in the registry.

I believe that by installing a single custom DLL into the system
directory, plus correctly installing some MS system DLLs into the
system directory we are being perfect citizens.

[Interestingly, Windows 2000 has a system process that continually
monitors the system directory.  If it detects that a "protected
file" has been changed, it promptly copies the original back over
the top!  I believe the MSVC*.dlls are in the protected list, so can
only be changed with a service pack release anyway.  Everything
_looks_ like it updates - Windows just copies it back!]

Mark.