未加载程序集c#
我有一个项目未加载程序集c#,c#,.net,log4net,C#,.net,Log4net,我有一个项目Common,其中包含一个log4net CustomAppender。我在所有其他项目中引用该项目,并在app.config中配置log4net appender。除了一个在尝试实例化Appender时失败的项目外,一切都很顺利 输出显示以下错误: System.TypeLoadException: Could not load type [Common.Appenders.MyCustomAppender]. Tried assembly [log4net, Version=1.
Common
,其中包含一个log4net CustomAppender。我在所有其他项目中引用该项目,并在app.config
中配置log4net appender。除了一个在尝试实例化Appender时失败的项目外,一切都很顺利
输出显示以下错误:
System.TypeLoadException: Could not load type [Common.Appenders.MyCustomAppender].
Tried assembly [log4net, Version=1.2.11.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a]
and all loaded assemblies
at log4net.Util.SystemInfo.GetTypeFromString(Assembly relativeAssembly, String typeName, Boolean throwOnError, Boolean ignoreCase)
at log4net.Util.SystemInfo.GetTypeFromString(String typeName, Boolean throwOnError, Boolean ignoreCase)
at log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseAppender(XmlElement appenderElement)
log4net:ERROR Appender named [MyCustomAppender] not found.
从代码中,我调用log4net.Config.XmlConfigurator.Configure()
。如果我在调用log4net configure之前使用assembly.load(“Common”)
手动加载程序集,那么对于非工作项目,一切都很好
知道当通过反射实例化
MyCustomAppender
时为什么不加载程序集吗?如何解决此问题?尝试将程序集名称放在类型名称之后
<appender name="MyCustomAppender" type="Common.Appenders.MyCustomAppender,Common">
请记住,程序集的名称不一定与VisualStudio中的默认命名空间或项目名称相同此处的相关名称是输出名称(即生成的dll的文件名)是否为生成标记为复制本地的公共项目?@RickHodder Yes,是的,所有必需的DLL都已就位。配置文件中没有任何内容可以帮助log4net确定它需要加载名为“Common”的程序集本身。类型的命名空间名称不相关。所以它不起作用。尝试添加、Common
,就像在上面的“type”属性中添加一样。我个人很快就厌倦了没有调试器的xml编程语言,只在代码中配置它。瑞克,不幸的是,这不是:(.是与我的机器相关的东西…它在另一台机器上工作…所以不知道发生了什么这解决了我的问题与同一个问题。希望这将被接受为解决方案。