我创建了一个将被多个应用程序使用的dll,并创建了一个安装程序包,将其安装到程序文件中,并将其添加到全局程序集缓存中。关于dll继承的问题
该dll本身使用log4net,并需要一个xml文件的日志定义。
因此在运行安装程序时,下列文件被复制到安装目录下的程序文件中: 是我公司开发 主要的DLL - 该Log4Net.dll - 在Log4Net.xml文件
我现在遇到问题。我创建了一个用于实验的测试控制台应用程序。我已经添加了我的dll作为参考,并将“本地副本”标志设置为false。
但是,当我编译测试控制台exe时,我注意到它已将log4net.dll和log4net.xml文件复制到bin目录。当运行测试控制台时,它看起来只有在log4net.dll与exe相同的目录下才能工作。这是因为测试控制台应用程序不使用log4net,而只是作为参考添加的dll。
是否有某种方式让它使用log4net.dll & xml文件将被安装到程序文件,而不是任何需要复制到本地副本的应用程序?将使用我的DLL的应用程序将不会使用log4net,只有他们所引用的dll使用它。
非常感谢
不幸的是,必须依赖任何dll的本地副本不是一个选项 - 这是由于项目的需求,因为客户希望独立的exe可以运行。这就是为什么我已将我的dll添加到GAC。 – Adam 2010-04-22 01:08:49
这是一只猪的口红。它不是*独立的exe文件,它需要GAC中的程序集和某个配置它的xml文件。拥有“独立EXE”的唯一要求不需要安装程序。那是一头不会飞的猪。 – 2010-04-22 01:32:42
它需要独立运行,以便能够从主机上的任何目录运行。客户端需要一个干净的目录,里面装满了可以运行的exe文件,而不是一个充满exe的目录,并支持DLL的/ xml文件。 实际上,我几乎可以通过将log4net.dll添加到GAC中,除了现在我遇到了一个不拾取xml文件的问题。但是,这是一个进步。 我同意你的看法,认为它可能不是最好的解决方案,但不幸的是,它不是我的设计,而且我仅限于我们客户想要的框架。非常感谢 – Adam 2010-04-22 01:48:01