我有一个应用程序,其中有一个DLL(当然还有一些文件)。在安装过程中,该DLL将被注册,因此在某些上下文菜单中可以使用其他菜单。如果我卸载这个应用程序DLL文件仍然"locked"
,这意味着,我不能删除它。我必须重新启动电脑才能删除此文件。如何解锁/取消注册进程使用的dll?
所以我的问题是,是否有可能创建一个应用程序,它可以关闭打开的句柄,或注销dll,或任何需要做的,以便能够删除此dll而无需重新启动?
提前致谢!
我有一个应用程序,其中有一个DLL(当然还有一些文件)。在安装过程中,该DLL将被注册,因此在某些上下文菜单中可以使用其他菜单。如果我卸载这个应用程序DLL文件仍然"locked"
,这意味着,我不能删除它。我必须重新启动电脑才能删除此文件。如何解锁/取消注册进程使用的dll?
所以我的问题是,是否有可能创建一个应用程序,它可以关闭打开的句柄,或注销dll,或任何需要做的,以便能够删除此dll而无需重新启动?
提前致谢!
Windows Shell中使用
regsvr32 <yourfile>.dll
登记文件
regsvr32 /u <yourfile>.dll
的注销文件
我的水晶球说,这是一个外壳扩展。当然,该DLL文件被锁定,因为它被加载到Explorer.exe中。杀毒资源管理器不是很合理,卸载程序通过使用PendingFileRenameOperations注册表项来完成。 – 2015-02-06 20:06:47
打开“Process Explorer”,按Ctrl + D打开图像视图。然后搜索dll名称。杀死加载它的进程。 – 2015-02-06 20:12:14
@Hans:更智能的外壳扩展安装程序/卸载程序/升级程序确实关闭并重新启动资源管理器 - 当然不是通过杀死它。我认为他们使用重新启动管理器。 (IIRC,TortoiseSVN就是一个例子) – 2015-02-07 00:35:35