全局程序集缓存工具(Gacutil.exe)使用详解
/r [assemblyName
assemblyPath] scheme id description
指定对要安装或卸载的一个或多个程序集的跟踪引用。与 /i、/il、/u 或 /ul 选项一起指定此选项。
若要安装程序集,请在使用此选项的同时指定 assemblyPath、scheme、id和 description 参数。若要卸载程序集,请指定 assemblyName、scheme、id和 description 参数。
若要移除对程序集的引用,必须指定在安装程序集时使用 /i 和 /r(或 /ir)选项指定的 scheme、id 和 description 参数。如果卸载程序集,则全局程序集缓存工具还从全局程序集缓存中移除该程序集,条件是它是最后一个要移除的引用,并且 Windows Installer 没有对该程序集的未决引用。
scheme 参数指定安装方案的类型。可以指定以下值之一:
UNINSTALL_KEY:如果安装程序将应用程序添加到 Microsoft Windows 中的“添加/删除程序”,则指定该值。应用程序通过将注册表项添加到 HKLM\Software\Microsoft\Windows\CurrentVersion 中而将自己添加到“添加/删除程序”中。
FILEPATH:如果安装程序没有将应用程序添加到“添加/删除程序”中,则指定该值。
OPAQUE:如果提供的注册表项或文件路径不适于您的安装方案,则指定该值。该值允许您为 id 参数指定自定义信息。
为 id 参数指定的值取决于为 scheme 参数指定的值:
如果为 scheme 参数指定 UNINSTALL_KEY,请在 HKLM\Software\Microsoft\Windows\CurrentVersion 注册表项中指定应用程序集的名称。例如,如果注册表项是 HKLM\Software\Microsoft\Windows\CurrentVersion\MyApp,请指定 MyApp 作为 id 参数。
如果为 scheme 参数指定 FILEPATH,请将安装程序集的可执行文件的完整路径指定为 id 参数。
如果为 scheme 参数指定 OPAQUE,则可以将任何一段数据作为 id 参数提供。所指定的数据必须用引号 ("") 括起来。
description 参数允许您指定关于要安装的应用程序的描述性文本。当枚举引用时,显示此信息。
/silent
取消所有输出的显示。
/u assemblyName
从全局程序集缓存中卸载程序集。
/uf assemblyName
通过移除对程序集的所有引用来强制卸载指定的程序集。
指定此选项相当于同时指定 /u 和 /f 选项。
注意:不能使用此选项移除使用 Microsoft Windows Installer 所安装的程序集。如果尝试此操作,则全局程序集缓存工具显示错误信息。
/ul assemblyListFile
从全局程序集缓存中卸载 assemblyListFile 中指定的一个或多个程序集。
/u[ngen] assemblyName
从全局程序集缓存中卸载指定的程序集。如果指定的程序集存在现有引用数,则全局程序集缓存工具显示引用数,而且不从全局程序集缓存中移除该程序集。
注意:在 .NET Framework 2.0 版中,不支持 /ungen。而是使用本机映像生成器 (Ngen.exe) 的 uninstall 命令。
在 .NET Framework 1.0 和 1.1 版中,指定 /ungen 将使 Gacutil.exe 从本机映像缓存中移除该程序集。此缓存存储了使用本机映像生成器 (Ngen.exe) 创建的程序集的本机映像。
/ur assemblyName scheme id description
从全局程序集缓存中卸载对指定程序集的引用。若要移除对程序集的引用,必须指定在安装程序集时使用 /i 和 /r(或 /ir)选项指定的 scheme、id 和 description 参数。有关可为这些参数指定的有效值的说明,请参见 /r 选项。
指定此选项相当于同时指定 /u 和 /r 选项。
/?
显示该工具的命令语法和选项。
备注:全局程序集缓存工具提供与 Windows 外壳程序扩展 (Shfusion.dll) 大致相同的缓存查看功能,但它更适于生成脚本、生成文件和批处理文件。
具体说来,Gacutil.exe 使您得以将程序集安装到缓存中、从缓存中移除程序集以及列出缓存的内容。
Gacutil.exe 提供支持引用计数的选项,类似于 Windows Installer 所支持的引用计数方案。您可以使用 Gacutil.exe 安装两个安装同一程序集的应用程序;全局程序集缓存工具跟踪对该程序集的引用数。结果是,该程序集将一直保留在计算机上,直到卸载这两个应用程序为止。如果将 Gacutil.exe 用于实际产品安装,请使用支持引用计数的选项。同时使用 /i 和 /r 选项可以安装程序集并添加引用对其进行计数。同时使用 /u 和 /r 选项可以移除对程序集的引用计数。注意,单独使用 /i 和 /u 选项不支持引用计数。这些选项在产品开发期间适用,但不适用于实际的产品安装。
使用 /il 或 /ul 选项可以安装或卸载存储在 ANSI 文本文件中的程序集。该文本文件中的内容必须具有正确的格式。若要使用文本文件安装程序集,请在文件中的单独一行上分别指定每个程序集的路径。下面的示例说明了包含要安装的程序集的文件的内容。
myAssembly1.dll
myAssembly2.dll
myAssembly3.dll
若要使用文本文件卸载程序集,请在文件中的单独一行上分别为每个程序集指定完全限定的程序集名称。下面的示例说明了包含要卸载的程序集的文件的内容。
myAssembly1,Version=1.1.0.0,Culture=en,PublicKeyToken=874e23ab874e23ab
myAssembly2,Version=1.1.0.0,Culture=en,PublicKeyToken=874e23ab874e23ab
myAssembly3,Version=1.1.0.0,Culture=en,PublicKeyToken=874e23ab874e23ab