上一页 | 目录 | 下一页
B.3 库的卸载
B.3.1 介绍
UnInstallLib 宏用来卸载一个库。如果在卸载过程中发生了错误将会放置一个错误标记。
B.3.2 参数
库类型 是否共享 卸载方式 文件
库类型
库的类型
DLL - 动态链接库 (DLL)
REGDLL - 要注册的 DLL
REGEXE - 使用 /unregserver 注册的 EXE COM 服务程序
TLB - 类型库或包含类型库(LIBRARY)的 DLL
REGDLLTLB - 要注册并包含类型库的 DLL
是否共享
指定要安装的库是否与其它应用程序共享
NOTSHARED - 该库不共享
SHARED - T该库是共享的且仅在共享库计数减少到不再使用时才移除。
卸载方式
指定卸载方式
NOREMOVE
- 该库不应该被删除。你应该在公共的或重要的系统文件(比如 Visual Basic/C++/MFC 运行库)使用该选项。
REBOOT_PROTECTED
- 正在使用时等待重新启动后移除文件 (所需的系统文件)。
- 当文件没有 Windows 文件保护时移除文件。
NOREBOOT_PROTECTED
- 当文件正在使用时警告用户。用户将可以关闭使用该文件的应用程序。
- 当文件没有 Windows 文件保护时移除文件。
REBOOT_NOTPROTECTED
- 正在使用时等待重新启动后移除文件 (所需的系统文件)。
- 不检查 Windows 文件保护直接移除文件。
NOREBOOT_NOTPROTECTED
- 当文件正在使用时警告用户。用户将可以关闭使用该文件的应用程序。
- 不检查 Windows 文件保护直接移除文件。
文件
用户系统里要卸载的文件位置。
B.3.3 选项
在插入 UnInstallLib 宏之前,定义以下内容,可以更改它们原来定义的操作。
B.3.3.1 LIBRARY_X64
- 用于 Windows x64 系统中的 DLL 卸载。
- 警告: 它会重置 RegSetView 和文件系统的重定向。
B.3.3.2 LIBRARY_SHELL_EXTENSION
- 在插入 UninstallLib 宏之前定义它,会在反注册后调用带 SHCNE_ASSOCCHANGED 的 SHChangeNotify 函数。
- 它可以在卸载了环境扩展或更改了文件关联后刷新环境。
B.3.3.3 LIBRARY_COM
- 在插入 UninstallLib 宏之前定义它,会在反注册后调用 CoFreeUnusedLibraries 函数。当卸载了 COM 库后,它可以从内存里卸载所有不需要的库文件。
B.3.4 例子
!insertmacro UnInstallLib REGDLL SHARED REBOOT_NOTPROTECTED $SYSDIR\dllname.dll
上一页 | 目录 | 下一页