.net - GAC - 要将程序集添加到 GAC,拖放可以,但复制和粘贴不行?为什么?

标签 .net drag-and-drop gac copy-paste

我想知道为什么拖放有效,而复制粘贴无效。复制和粘贴没有发生的拖放会发生什么?

最佳答案

当您将程序集拖放到 C:\windows\assembly 中时文件夹,它并没有真正被复制到那里——一个特殊的 Windows Explorer 插件 callis gacutil 将您的程序集安装到 GAC 中。

这个 Explorer 插件可能会让人感到困惑,因为它可能会给人一种错觉,即 GAC 只是一个包含大量 DLL 的简单文件夹。 实际上,它是一个分层结构,每个程序集名称都有一个文件夹,里面有不同版本的文件夹,等等。

想看真正的GAC结构,打开HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion在 Windows 注册表中设置 DWORD DisableCacheViewer1 .这将禁用使 GAC 看起来如此简单的 Cache Viewer 插件(但它也会使拖放安装无法使用——您必须自己调用 gacutil)。当然,如果您不想弄乱注册表设置,您也可以使用其他文件管理器或控制台。

至于复制粘贴不起作用的原因,我相信设计缓存查看器插件的人认为拖放是在GAC中放置东西的一个很好的比喻,而实现复制和粘贴确实会让 GAC 看起来像一个普通文件夹——它不是 .

关于.net - GAC - 要将程序集添加到 GAC,拖放可以,但复制和粘贴不行?为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5110345/

相关文章:

.net - 如何使发布者策略文件重定向程序集请求

macos - NSView拖动操作错误

.net - .NET 中的 GAC 是什么?

.net - OWIN OAuth 2.0 - 不记名 token 永不过期

c# - 在LINQ中设置或更新数据

c# - 检查在上下文菜单条中单击了哪个子菜单项

java - 是否有一个开源 C# .net mvc 项目可以消除为新客户开发 Appfuse 应用程序时的启动时间?

objective-c - 从 Safari 中拖动图像并将其放到扩展坞图标上在雪豹中不起作用?

javascript - 如何防止掉入 div 元素?

c# - PowerShell 能否在 GAC 中使用具有不同版本的本地程序集?