Сборка не загружена c #

2

У меня есть проект Common, который содержит log4net CustomAppender. Я ссылаюсь на проект во всех моих других проектах и ​​настраиваю приложение log4net в app.config. Все работает гладко, за исключением одного проекта, который не работает при попытке создать экземпляр 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 для всех проектов одинакова. app.config содержит:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <log4net>
    <appender name="MyCustomAppender" type="Common.Appenders.MyCustomAppender">
      <file value="log.txt" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>
    <root>
      <level value="DEBUG" />
      <appender-ref ref="MyCustomAppender" />
    </root>
  </log4net>
</configuration>

Из кода я вызываю log4net.Config.XmlConfigurator.Configure(). Если я вручную загружаю сборку с помощью Assembly.Load("Common") перед вызовом конфигурации log4net для нерабочего проекта, все в порядке.

Любая идея, почему сборка не загружается, когда MyCustomAppender создается через отражение? Как я могу это решить?

  • 0
    Помечен ли общий проект для копирования как локальный?
  • 0
    @RickHodder Да, это так, и все необходимые библиотеки на месте.
Показать ещё 1 комментарий
Теги:
log4net

1 ответ

11

Попробуйте поместить имя сборки после имени типа

<appender name="MyCustomAppender" type="Common.Appenders.MyCustomAppender,Common">

http://weblogs.asp.net/tgraham/archive/2007/05/02/loading-the-assembly-for-a-custom-log4net-appender.aspx

  • 1
    Эй, Дэн, если это решит твою проблему, можешь ли ты отметить это как принятое? Спасибо!
  • 0
    Рик, к сожалению, это не так :(. Что-то связано с моей машиной, хотя ... она работает на другой .... Так что понятия не имею, что происходит
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню