GAC - 要将程序集添加到GAC,拖放工作,但复制和粘贴不起作用?为什么?

ric*_*ard 6 .net gac drag-and-drop copy-paste

我想知道为什么拖放工作,并且复制粘贴没有.使用复制和粘贴时没有发生的拖放会发生什么?

Dan*_*mov 15

当您将程序集拖放到C:\windows\assembly文件夹中时,它并没有真正复制到那里 - 一个特殊的Windows资源管理器插件callis gacutil将程序集安装到GAC中.

这个资源管理器插件可能会令人困惑,因为它可能让人觉得GAC只是简单的文件夹,包含大量的DLL.实际上,它是一个分层结构,每个程序集名称都有一个文件夹,其中有不同版本的文件夹,依此类推.

如果要查看真实的 GAC结构,请HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion在Windows注册表中打开并将DWORD设置DisableCacheViewer1.这将禁用缓存查看器插件,使GAC看起来如此简单(但它也会拖放安装无法使用 - 你必须gacutil自己打电话).当然,如果您不想搞乱注册表设置,也可以使用备用文件管理器或控制台.

至于复制粘贴不起作用的原因,我相信设计Cache Viewer插件的人认为拖放是一个很好的比喻,可以东西放到GAC中,而实现复制和粘贴会让GAC看起来像一个普通的文件夹 - 事实并非如此.