【问题标题】:What is Download subfolder in GAC什么是 GAC 中的下载子文件夹
【发布时间】:2017-02-20 17:45:01
【问题描述】:

在尝试让一些 com 互操作与 excel 一起工作时,我似乎在 gac 中创建了许多重复的本机图像文件(我认为我需要删除它们)。但它们位于子文件夹中,如下图所示...

有许多具有相同代码库的重复项,所以我猜 Visual Studio 正在做自己的清理工作。

当我使用 regservr32 卸载 shfusion 时,我无法将它们视为 dll。这是因为它们链接到“代码库”而不是作为 dll 存储在 GAC 中吗?

什么是下载子文件夹?

摆脱这些的最好方法是什么?只是反复运行 regasm?


所以没有人知道这件事吗?

无论如何,我想出了如何使用

清除下载缓存
C:\Users\Admin\Source>gacutil /cdl

来自 VS 20XX 的开发人员命令提示符

【问题讨论】:

    标签: .net visual-studio gac


    【解决方案1】:

    您正在查看 HTTP 下载缓存。变得相当模糊,几乎没有人仍然编写仍然使用它的代码。在 .NET 的早期,当每个人都还在使用 IE6 并且系统管理员还没有开始阻止 ActiveX 内容时,这有点道理。

    很难获得有关该缓存的技术信息。 this blog post 中仍然提到,但是当 gotdotnet.com 停止时,链接的博客文章与好东西一起死了。回程机也没有备份。

    很难解释为什么您在 Excel 中测试程序集时会看到它。 Afaik 它仅用于加载到 Internet Explorer 中的程序集。该文件夹不是真实的,只是 shfusion.dll 实现的 shell 扩展的一种错觉,它隐藏了 .NET 2.0 GAC 内容。实际存储位置是 C:\Users\yourname\AppData\Local\assembly\dl3

    它就像普通的网络浏览器缓存一样工作。由于 AssemblyVersion 和 PublicKeyToken 的额外细节,我认为是分开的。由于程序集的时间戳不同,您肯定会不止一次地看到它,这可能是在您测试库时创建的。清理是自动的,就像浏览器缓存一样,Fusion 在总存储大小超过 50MB 时开始删除文件。通过从命令提示符导航到该文件夹​​进行查看。键入 dir /s 以查看文件的日期及其总大小。好吧,有点太晚了,因为你用 gacutil /cdl 杀死了它。否则最好以与浏览器缓存相同的方式对待它,没有必要对其进行微观管理。

    【讨论】:

    • 好的,是的,我可以在那里看到。正如您所建议的,每次我重新构建和运行应用程序时,VS 都会创建新版本。这是一个文档级别的 VSTO 插件,所以我认为它是一个 VSTO 的东西。感谢您的解释:我的VBA/VSTO interop problem
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    • 2020-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-25
    • 1970-01-01
    相关资源
    最近更新 更多