【问题标题】:GAC - To add an assembly to the GAC, drag and drop works, but copy and paste doesn't? Why?GAC - 要将程序集添加到 GAC,拖放可以,但复制和粘贴不行?为什么?
【发布时间】:2011-07-03 21:06:07
【问题描述】:

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

【问题讨论】:

  • 是时候忘记这件事了。 shell 扩展不适用于 .NET 4.0,并且 GAC 不再位于 c:\windows\assembly
  • LOL 不幸的是,我仍然支持目前仍为 2.0 的客户端应用程序。很高兴知道这与 4.0 不同。

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


【解决方案1】:

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

这个资源管理器插件可能会让人感到困惑,因为它可能会让人产生一种错觉,即 GAC 只是一个包含大量 DLL 的简单文件夹。 其实是一个层次结构,每个程序集名称都有一个文件夹,里面有不同版本的文件夹,以此类推。

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

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

【讨论】:

    【解决方案2】:

    感谢丹·阿布拉莫夫: 我在上面添加了一些东西

    问题:复制和粘贴在程序集下无法安装新的 dll(C:\windows\assembly 文件夹)

    Ans:- 您可以通过 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion 下的字符串“DisableCacheViewer”DWORD 更改注册表项来查看文件夹架构,使其为“1”

    这样你就可以看到同一个文件夹下的视图了。

    您可以通过实用程序转储所有其他程序集 Dll 打开 CMD 并在下面键入以使用实用程序 用于安装 "gacutil /i .dll"

    用于卸载 "gacutil /u .dll"

    如果您需要安装/卸载多个程序集以便您可以使用

    /il

    /ul

    选项

    最好的是 你可以制作一个批处理文件并在下面运行 “C:\Program Files (x86)\Microsoft Visual Studio 8\SDK\v2.0\Bin” 一次

    谢谢 阿舒托什·索尼

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-05
      • 2023-04-01
      相关资源
      最近更新 更多