全局程序集缓存工具(Gacutil.exe)用法详解
全局程序集缓存工具使您可以查看和操作全局程序集缓存和下载缓存的内容。
gacutil [options] [assemblyName | assemblyPath | assemblyListFile]
参数
| 参数 | 说明 |
|---|---|
|
assemblyName |
程序集的名称。可以提供部分指定的程序集名称(如 myAssembly)或完全指定的程序集名称(如 myAssembly, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0038abc9deabfle5)。 |
|
assemblyPath |
包含程序集清单的文件的名称。 |
|
assemblyListFile |
列出要安装或卸载的程序集的 ANSI 文本文件的路径。若要使用文本文件安装程序集,请在文件中的单独一行上分别指定每个程序集的路径。全局程序集缓存工具解释相对于 assemblyListFile 的位置的相对路径。若要使用文本文件卸载程序集,请在文件中的单独一行上分别为每个程序集指定完全限定的程序集名称。请参见本主题后面的 assemblyListFile 内容示例。 |
| 选项 | 说明 | ||
|---|---|---|---|
|
/cdl |
删除下载缓存的内容。 |
||
|
/f |
与 /i 或 /il 选项一起指定此选项将强制重新安装程序集。如果全局程序集缓存中已经存在同名的程序集,全局程序集缓存工具将改写该程序集。 |
||
|
/h[elp] |
显示该工具的命令语法和选项。 |
||
|
/i assemblyPath |
将程序集安装到全局程序集缓存中。 |
||
|
/ifassemblyPath |
将程序集安装到全局程序集缓存中。如果全局程序集缓存中已经存在同名的程序集,全局程序集缓存工具将改写该程序集。 指定此选项相当于同时指定 /i 和 /f 选项。 |
||
|
/il assemblyListFile |
将 assemblyListFile 中指定的一个或多个程序集安装到全局程序集缓存中。 |
||
|
/irassemblyPath scheme id description |
将程序集安装到全局程序集缓存中,并添加引用以对程序集进行计数。使用此选项时必须指定assemblyPath、scheme、id和 description 参数。有关可为这些参数指定的有效值的说明,请参见 /r 选项。 指定此选项相当于同时指定 /i 和 /r 选项。 |
||
|
/l[assemblyName] |
列出全局程序集缓存的内容。如果指定 assemblyName 参数,则全局程序集缓存工具只列出与该名称匹配的程序集。 |
||
|
/ldl |
列出下载文件缓存的内容。 |
||
|
/lr[assemblyName] |
列出所有程序集及其相应的引用数。如果指定 assemblyName 参数,则该工具只列出与该名称匹配的程序集及其相应的引用数。 |
||
|
/nologo |
取消显示 Microsoft 启动标题。 |
||
|
/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 参数指定安装方案的类型。可以指定以下值之一:
为 id 参数指定的值取决于为 scheme 参数指定的值:
description 参数允许您指定关于要安装的应用程序的描述性文本。当枚举引用时,显示此信息。 |
||
|
/silent |
取消所有输出的显示。 |
||
|
/uassemblyName |
从全局程序集缓存中卸载程序集。 |
||
|
/ufassemblyName |
通过移除对程序集的所有引用来强制卸载指定的程序集。 指定此选项相当于同时指定 /u 和 /f 选项。
|
||
|
/ul assemblyListFile |
从全局程序集缓存中卸载 assemblyListFile 中指定的一个或多个程序集。 |
||
|
/u[ngen]assemblyName |
从全局程序集缓存中卸载指定的程序集。如果指定的程序集存在现有引用数,则全局程序集缓存工具显示引用数,而且不从全局程序集缓存中移除该程序集。
在 .NET Framework 1.0 和 1.1 版中,指定 /ungen 将使 Gacutil.exe 从本机映像缓存中移除该程序集。此缓存存储了使用本机映像生成器 (Ngen.exe) 创建的程序集的本机映像。 |
||
|
/urassemblyName 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
以下命令将程序集 mydll.dll 安装到全局程序集缓存中。
gacutil /i mydll.dll
以下命令从全局程序集缓存中移除程序集 hello(只要不存在对该程序集的引用计数)。
gacutil /u hello
请注意,上面的命令可能会从程序集缓存中移除多个程序集,原因是程序集名称不是完全指定的。例如,如果在该缓存中安装有 hello 的 1.0.0.0 和 3.2.2.1 两个版本,则 gacutil /u hello 命令会将这两个程序集都移除。
使用下面的示例以避免删除多个程序集。该命令只删除与完全指定的版本号、区域性和公钥匹配的 hello 程序集。
gacutil /u hello, Version=1.0.0.1, Culture="de",PublicKeyToken=45e343aae32233ca
以下命令将 assemblyList.txt 文件中指定的程序集安装到全局程序集缓存中。
gacutil /il assemblyList.txt
以下命令从全局程序集缓存中移除 assemblyList.txt 文件中指定的程序集。
gacutil /ul assemblyList.txt
以下命令将 myDll.dll 安装到全局程序集缓存中并添加引用对其进行计算。程序集 myDll.dll 由应用程序MyApp 使用。UNINSTALL_KEY MyApp 参数指定将 MyApp 添加到 Windows“添加/删除程序”中的注册表项。description 参数被指定为 My Application Description。
gacutil /i /r myDll.dll UNINSTALL_KEY MyApp "My Application Description"
以下命令将 myDll.dll 安装到全局程序集缓存中并添加引用对其进行计算。scheme 参数 FILEPATH 和 id 参数c:\applications\myApp\myApp.exe 指定要安装 myDll.dll 应用程序的路径。description 参数被指定为MyApp。
gacutil /i /r myDll.dll FILEPATH c:\applications\myApp\myApp.exe MyApp
以下命令将 myDll.dll 安装到全局程序集缓存中并添加引用对其进行计算。scheme 参数 OPAQUE 允许您自定义 id 和 description 参数。
gacutil /i /r mydll.dll OPAQUE "Insert custom application details here" "Insert Custom description information here"
以下命令移除应用程序 myApp 对 myDll.dll 的引用。如果这是对该程序集的最后一个引用,则将同时从全局程序集缓存中移除该程序集。
gacutil /u /r myDll.dll FILEPATH c:\applications\myApp\myApp.exe MyApp
下面的命令列出全局程序集缓存的内容。
gacutil /l
全局程序集缓存工具(Gacutil.exe)用法详解的更多相关文章
- sc.exe用法详解
sc.exe是帮助开发 WindowsNT 服务的工具,这里我来说说如何使用好sc.exe. 我们打开命令提示符(以管理员身份运行): 输入sc delete ServiceName(服务名) 即可 ...
- Gacutil.exe(全局程序集缓存工具)
全局程序集缓存 .NET Framework (current version) 其他版本 安装有公共语言运行时的每台计算机都具有称为全局程序集缓存的计算机范围内的代码缓存.全局程序集缓存中存储了专门 ...
- Register DLL Assembly Gacutil.exe(全局程序集缓存工具)
全局程序集缓存工具使你可以查看和操作全局程序集缓存和下载缓存的内容. 此工具会自动随 Visual Studio 一起安装. 若要运行此工具,请使用开发人员命令提示(或 Windows 7 中的 Vi ...
- 【转】Gacutil.exe(全局程序集缓存工具)
全局程序集缓存工具使您可以查看和操作全局程序集缓存和下载缓存的内容. 安装 Visual Studio 和 Windows SDK 时会自动安装此工具. 要运行工具,我们建议您使用 Visual St ...
- Mysql导入导出工具Mysqldump和Source命令用法详解
Mysql本身提供了命令行导出工具Mysqldump和Mysql Source导入命令进行SQL数据导入导出工作,通过Mysql命令行导出工具Mysqldump命令能够将Mysql数据导出为文本格式( ...
- [转]Mysql导入导出工具Mysqldump和Source命令用法详解
Mysql本身提供了命令行导出工具Mysqldump和Mysql Source导入命令进行SQL数据导入导出工作,通过Mysql命令行导出工具Mysqldump命令能够将Mysql数据导出为文本格式( ...
- PowerShell攻防进阶篇:nishang工具用法详解
PowerShell攻防进阶篇:nishang工具用法详解 导语:nishang,PowerShell下并肩Empire,Powersploit的神器. 开始之前,先放出个下载地址! 下载地址:htt ...
- Sqlmap 工具用法详解
Sqlmap 工具用法详解 sqlmap是一款自动化的sql注入工具. 1.主要功能:扫描.发现.利用给定的url的sql注入漏 ...
- 68.connect-flash 用法详解 req,flash()
转自:http://yunkus.com/connect-flash-usage/ connect-flash 用法详解 前端工具 2016-10-05 2016-10-05 朝夕熊 11 ...
随机推荐
- MVVM框架(二)---生命周期
一.Vue 生命周期图解: 这张图是官方给出的,大家可能都看过.其中我们重点讲述以下几个钩子函数: beforeCreate --> created beforeMount --> ...
- python中的PYC文件是什么?
1. Python是一门解释型语言吗? 我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在.如果是解释型语言 ...
- C++ 基础--虚构函数
virtual 函数 示例代码如下: #include <stdio.h> class base { public: virtual void name(){printf("ba ...
- 02_TypeScript数据类型
typescript中为了使编写的代码更规范,更有利于维护,增加了类型校验,写ts代码必须指定类型. 1.布尔类型(boolean) var flag:boolean = true; 2.数字 ...
- XLNet:运行机制及和Bert的异同比较
这两天,XLNet貌似也引起了NLP圈的极大关注,从实验数据看,在某些场景下,确实XLNet相对Bert有很大幅度的提升.就像我们之前说的,感觉Bert打开两阶段模式的魔法盒开关后,在这条路上,会有越 ...
- 【转】Android之四大组件、六大布局、五大存储
文章来自:http://blog.csdn.net/shenggaofei/article/details/52450668 一.四大组件: Android四大组件分别为activity.servic ...
- spring cloud微服务快速教程之(十一) Sleuth(zipkin) 服务链路追踪
0.前言 微服务架构上众多微服务通过REST调用,可能需要很多个服务协同才能完成一个接口功能,如果链路上任何一个服务出现问题或者网络超时,都会形成导致接口调用失败.随着业务的不断扩张,服务之间互相调用 ...
- Windows AD日志分析平台WatchAD安装教程
目录 WatchAD介绍 安装环境 WatchAD安装(日志分析端服务) 基础环境配置 安装WatchAD 运行WatchAD WatchAD-web安装(Web监控端服务) 下载WatchAD-We ...
- 浅谈 k8s ingress controller 选型
大家好,先简单自我介绍下,我叫厉辉,来自腾讯云.业余时间比较喜欢开源,现在是Apache APISIX PPMC.今天我来简单给大家介绍下 K8S Ingress 控制器的选型经验,今天我讲的这些内容 ...
- PyQt5官方教程+帮助文档+模块功能汇总
写在开头 笔者自学PyQt5的过程中,在网上发现了不少友好的新手入门教程,比如: Archi的博客 PyQt5图形界面编程 但是学习PyQt5的最好方法是阅读官方文档 + 自己动手实践,笔者将分享官网 ...
注意