【发布时间】:2009-02-18 21:26:49
【问题描述】:
我将签名的 dll 放入 GAC。我从其他应用程序可以访问它的文件夹中删除了这个 dll。我尝试运行使用该 dll 的客户端应用程序。 Dll 立即被放回原始文件夹。它是怎么发生的?
我猜 GAC 正在监视文件夹,当它检测到缺少 dll 时,它会将最新版本放回其他应用程序可以访问的文件夹中。如果我是正确的,请告诉我如果重新构建,GAC 是否会再次自动备份 dll。
【问题讨论】:
-
我终于发现了如何删除这个dll。无论如何,客户端代码都能够运行这个库。我注意到该 dll 的副本已放入 Windows\assembly\GAC_MSIL - 为什么会这样。我希望客户端代码使用原始目录中的 dll,而不是 windows...
-
那是 GAC 商店。 CLR 总是先搜索 GAC,然后再探查本地目录。请更新您的帖子并说明您是如何删除 DLL 的。