如何:从全局程序集缓存中删除程序集
注意
本文特定于 .NET Framework。 它不适用于 .NET 的较新版本实现,包括 .NET 6 及更高版本。
有两种方法可以从全局程序集缓存 (GAC) 中移除程序集:
通过使用全局程序集缓存工具 (Gacutil.exe)。 可以使用此选项卸载开发和测试期间已放置在 GAC 中的程序集。
通过使用 Windows Installer。 应使用此选项在测试安装包期间卸载程序集,并将其用于生产系统。
使用 Gacutil.exe 删除程序集
在命令提示符处,键入下列命令:
gacutil –u <assembly name>
在此命令中,“assembly name”是要从全局程序集缓存中删除的程序集的名称。
警告
不应使用 Gacutil.exe 来移除生产系统上的程序集,因为一些应用程序可能仍需要该程序集。 应改为使用 Windows Installer,它保留了它在 GAC 中安装的每个程序集的引用计数。
以下示例从全局程序集缓存中删除名为 hello.dll
的程序集:
gacutil -u hello
使用 Windows Installer 移除程序集
在“控制面板”的“程序和功能”应用中,选择要卸载的应用 。 如果安装包将程序集放入 GAC,在没有其他应用程序使用这些程序集的情况下,Windows Installer 将移除它们。
备注
Windows Installer 保留了安装在 GAC 中的程序集的引用计数。 仅当程序集的引用计数为零时才可将其从 GAC 移除,计数为零时意味着它没有被任何 Windows Installer 包安装的应用程序所使用。