Windows / .net在任何情况下都会自动将DLL放入GAC

时间:2010-10-11 11:53:13

标签: .net gac

我有一个引用DLL的程序。此DLL中的代码获取正在执行的DLL的目录,并使用它来查找要加载的XSD文件(即我希望代码从 c:\ foo \ my.dll 执行,所以它看起来对于 c:\ foo \ validation.xsd )。

在成千上万的客户安装中,我的工作正常。但是在一种情况下,DLL正在GAC中安装。这意味着当它查找XSD文件时,它无法找到它作为执行目录,它给出的是GAC而不是c:\ foo。

我的问题是:这是Windows / .net的一项功能,是否会导致它在某些情况下安装在GAC中?安装程序显然没有把DLL放在GAC中,否则我会在整个地方出现这个问题。

我搜索了Stackoverflow和Google,虽然有很多关于从GAC安装和删除文件的信息,但我找不到任何可以自动发生这种情况的信息。我想知道客户站点的管理员是否手动将这些DLL放在那里。他们似乎不太会打扰你,但你永远不知道用户会做什么!

谢谢,

Xanthalas

2 个答案:

答案 0 :(得分:0)

我不相信它会自动发生,但如果使用相同依赖项的单独应用程序已在GAC中注册,则可以解释您所看到的内容。在这种情况下,用户可能没有故意或故意对DLL做过任何事情。

答案 1 :(得分:0)

有人会在GAC中安装程序集,可能使用Gacutil

程序集不会自行安装在GAC中。