[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: How to implent: Uninstall shell extensions without killing explorer.exe?

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: Sun, 15 Jan 2012 11:04:24 +0100

On 15.01.2012 03:44, Lin wrote:
> Hi all,
> I am writing a shell extension and gets some problem for users to
> uninstall the product without killing explorer. AFAIK, explorer locks
> the shellext dll, and one can't delete this dll while Explorer is
> running, even if you have unregistered the shell extension.
> But someone told me TSVN can be totally uninstalled without killing
> explore.exe. I took a try and it's true. I tried to read the source
> code of TSVN but failed to find useful information. Can you guys drop
> me a hint on how to achieve this?
> BTW, Sorry for post a message not much related to the dev of TSVN
> itself.

Windows can remove a file even if it's in use. At least if you don't use
Windows 2000 but only WinXP or later.
We use an msi installer, and msiexec which does all the installing and
uninstalling takes care of removing such in-use files.

But: even though those files are removed, they still remain loaded in
the explorer process - the file is marked as removed on the disk, but
it's still there and all handles are still valid, until all handles to
the file have been closed - then Windows removes the file for good.


   oo  // \\      "De Chelonian Mobile"
  (_,\/ \_/ \     TortoiseSVN
    \ \_/_\_/>    The coolest Interface to (Sub)Version Control
    /_/   \_\     http://tortoisesvn.net
To unsubscribe from this discussion, e-mail: [dev-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2012-01-15 11:04:34 CET

This is an archived mail posted to the TortoiseSVN Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.