65.9K
CodeProject 正在变化。 阅读更多。
Home

提取 GAC 程序集

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.45/5 (13投票s)

2007年1月6日

CPOL

2分钟阅读

viewsIcon

69201

downloadIcon

876

从 GAC 提取 .NET 程序集

Sample Image - Extract_GAC_Assemblies.jpg

引言

今天我将编写一个简单但有用的实用程序,它可以用来从全局程序集缓存 (GAC) 中提取 .NET 程序集。

背景

几天前,我正在使用 SharePoint 对象模型,我发现我需要提取一些安装在我的机器的 GAC 中的程序集。而且没有现成的工具来完成这项任务。这就是为什么我想编写一个并将其发布在这里,以便下次对我以及其他开发人员来说,执行此操作会更容易。

使用代码

我想大多数读者都知道 GAC 的结构。但在这里我再次简要地解释一下。安装后,.NET 程序集保留在 $(windir)\assembly\GAC 目录中,该目录可以在 Windows 目录中找到(这是通常的情况)。并且在这个目录中,一个程序集存储在一个名称类似于该程序集的目录中。在这个目录中,还有一个名为 XXXXX__YYYYY 的目录,在该目录下方存储了实际的程序集。这里 XXXXX 是程序集的版本号,YYYYY 是公钥令牌。你知道 .NET 通过其优雅的并行执行消除了“DLLHELL”。因此,另一个具有相同名称但不同版本的程序集可以存储在 GAC 中,而不会产生歧义。

好吧,在代码中,我只是以编程方式探索 $(windir)\assembly\ 目录。你无法使用 Windows 资源管理器探索此目录。查看此目录的实际内容唯一的方法是使用命令 shell。

这里没什么好说的了。代码非常简单。它只是探索该目录,并提供一些功能来从/向全局程序集缓存提取/安装一个或多个程序集。

结论

希望你喜欢这个!

© . All rights reserved.