在项目中我们常常会引入第三方的dll,一般情况下我们都可以将所需的dll文件复制到硬盘上的一个地方,然后在项目中添加引用,这个操作很简单!但有时候我们会遇到这样的情况,就是所要引用的dll在目标机器的GAC里,这时我们就不能手动将它拷贝出来了。
其实Windows的GAC是有对应的目录的,一般来说为c:\Windows\assembly\,这个目录有一些特殊,它里面存放的是本机已安装和注册的类库dll,并且不允许用户直接对其中的元素进行相关操作(如复制、剪切、粘贴、修改名称等),不过你可以直接将另一位置的dll文件直接拖放到这个目录下进行dll的安装,但是我们不能直接将已经安装进去的dll再拷贝出来。这里我将介绍一种方法来完成这个操作。
首先我们切换到Windows的命令行方式,即开始-运行-cmd-回车,然后转到GAC所在的目录,利用dir命令查看一下其中的内容,如下图。
似乎可以明白GAC中的目录结构了,基本上我们可以根据GAC目录中的Processor Architecture列来区分dir的类型,例如我们要找的System.Web.Extensions属于MSIL,在CMD方式下它应该就对应GAC_MSIL,然后切换到这个目录下并dir。
看到我们要找的System.Web.Extensions程序集了,它也是一个dir,继续切进去并dir。
这时只有一个目录了,继续切进去,然后dir就可以看到我们最终想要的dll文件了,然后通过copy命令将它复制出来就OK了!