Log4Net和GAC-如何引用配置文件?

Log4Net和GAC-如何引用配置文件?,log4net,gac,Log4net,Gac,我在开发过程中使用log4net,作为项目约束的一部分,我现在需要将其添加到全局程序集缓存中 日志记录定义位于文件Log4Net.xml中。该文件在我的assemblyinfo中被引用为:[assembly:log4net.Config.XmlConfigurator(ConfigFile=“log4net.xml”,Watch=true)]。只要xml文件与log4net.dll位于同一目录中,一切都正常工作 然而,现在我已经将log4net添加到GAC中,它不再拾取xml文件 有人知道我需要

我在开发过程中使用log4net,作为项目约束的一部分,我现在需要将其添加到全局程序集缓存中

日志记录定义位于文件Log4Net.xml中。该文件在我的assemblyinfo中被引用为:[assembly:log4net.Config.XmlConfigurator(ConfigFile=“log4net.xml”,Watch=true)]。只要xml文件与log4net.dll位于同一目录中,一切都正常工作

然而,现在我已经将log4net添加到GAC中,它不再拾取xml文件

有人知道我需要修改什么才能让它再次提取XML文件吗?在部件引用中对修补程序进行硬编码是唯一的方法吗


非常感谢

您可以确保将log4net.xml文件设置为“始终复制”(右键单击log4net.xml->Properties->Copy to Output Directory=Copy Always)。要确保复制配置文件,应检查bin\debug或bin\release目录,并验证log4net.xml文件是否存在于应用程序执行的同一目录中

如果这不起作用,那么您可以尝试在log4net中启用内部调试。要启用内部调试,请将以下密钥添加到app.config文件中。这将向VisualStudio输出窗口(视图->输出)发送内部log4net调试消息


您可以确保将log4net.xml文件设置为“始终复制”(右键单击log4net.xml->Properties->Copy to Output Directory=Copy Always)。要确保复制配置文件,应检查bin\debug或bin\release目录,并验证log4net.xml文件是否存在于应用程序执行的同一目录中

如果这不起作用,那么您可以尝试在log4net中启用内部调试。要启用内部调试,请将以下密钥添加到app.config文件中。这将向VisualStudio输出窗口(视图->输出)发送内部log4net调试消息


log4net希望配置文件位于以下路径中:

 System.AppDomain.CurrentDomain.BaseDirectory
让您的应用程序将这些信息打印到某个文件中,然后您就知道需要将配置文件放在哪里


当然还有其他解决方案,但是您不能再使用该属性了。直接调用ConfigureAndWatch()方法可以让您自己确定配置文件的位置;您甚至可以决定位置(不必是硬编码路径)。

log4net希望配置文件位于以下路径中:

 System.AppDomain.CurrentDomain.BaseDirectory
让您的应用程序将这些信息打印到某个文件中,然后您就知道需要将配置文件放在哪里


当然还有其他解决方案,但是您不能再使用该属性了。直接调用ConfigureAndWatch()方法可以让您自己确定配置文件的位置;你甚至可以决定一个位置(不必是硬编码的路径)。

非常感谢你自己和Stefan,你们给了我很多选择。谢谢你的帖子。非常感谢你自己和Stefan,你们给了我很多选择。谢谢你的帖子。
 System.AppDomain.CurrentDomain.BaseDirectory