我有一个引用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
答案 0 :(得分:0)
我不相信它会自动发生,但如果使用相同依赖项的单独应用程序已在GAC中注册,则可以解释您所看到的内容。在这种情况下,用户可能没有故意或故意对DLL做过任何事情。
答案 1 :(得分:0)
有人会在GAC中安装程序集,可能使用Gacutil。
程序集不会自行安装在GAC中。