在试图让一些com互操作与excel一起使用时,我似乎在gac中创建了许多重复的本机映像文件(我认为我需要删除)。但它们位于子文件夹中,如下图所示......
有许多重复项使用相同的代码库,所以我猜视觉工作室正在做一个自我清理的垃圾工作。
当我使用regservr32卸载shfusion时,我看不到这些是dll的。这是因为它们链接到“CodeBase”而不是作为dll存储在GAC中吗?
所有的下载子文件夹是什么?
摆脱这些的最佳方法是什么?只是反复运行regasm?
所以没人知道这件事吗?
无论如何,我想出了如何使用
清除下载缓存C:\Users\Admin\Source>gacutil /cdl
从开发人员命令提示VS 20XX
答案 0 :(得分:3)
您正在查看HTTP下载缓存。得到相当模糊,几乎没有人仍然编写仍然使用它的代码。在早期的.NET中,每个人仍然使用IE6并且sys-admins还没有开始阻止ActiveX内容,这是有道理的。
很难获得有关该缓存的技术信息。在this blog post中仍然提到但是当gotdotnet.com停止使用时,带有好东西的链接博客帖子就死了。在备用机器上也没有备份。
很难解释为什么在Excel中测试时会看到你的装配回来。 Afaik它仅用于加载到Internet Explorer的程序集。该文件夹不是真实的,只是由shfusion.dll实现的shell扩展的幻觉,它隐藏了.NET 2.0 GAC内容。实际存储位置为C:\ Users \ yourname \ AppData \ Local \ assembly \ dl3
它就像普通的Web浏览器缓存一样。由于AssemblyVersion和PublicKeyToken的额外细节,我认为保持分离。当然,由于程序集的时间戳不同,您可能不止一次地看到它,这可能是在您测试库时创建的。清理是自动的,就像浏览器缓存一样,当总存储大小超过50MB时,Fusion会开始删除文件。通过从命令提示符导航到该文件夹来查看。键入dir / s以查看文件上的日期及其总大小。好吧,因为你用gacutil / cdl杀了它有点太晚了。否则最好以与浏览器缓存相同的方式对待它,没有迫切需要对其进行微观管理。