Почему PreApplicationStartMethod со ссылкой на пользовательскую библиотеку .NET вызывает сбой Log4Net без уведомления?
Фактическая проблема, которую я рассматриваю, может быть немного сложнее, чем предполагает название, но я еще не понял ее. Вот что у меня есть:
Контекст
У меня есть решение для многих проектов, но здесь только 3 значения: проект пользовательского интерфейса ASP.NET WebForms (проект A) и проект веб-службы (проект B).
+ Solution
└ Project A (Web GUI)
| └ log4net (v1.2.13))
| └ Library C (Common library)
| └ log4net (v1.2.13))
└ Project B (Web Services, contains Swagger)
└ log4net (v1.2.13))
└ Library C (Common library)
└ log4net (v1.2.13))
В Project A есть ссылка на Project B, потому что он использует некоторые части веб-службы, которые я не хочу реализовывать дважды. Оба также ссылаются на сборку C (той же версии), библиотеку, которая не является частью кода решения. Все они также ссылаются на одну и ту же версию библиотеки log4net.
Поскольку в проекте B также есть Swagger, в нем есть следующие
[assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")]
namespace Web.Services.External {
public class SwaggerConfig {
public static void Register() {
// LINE OF TROUBLE
string rootUrl = ConfigurationManager.AppSettings.TryGetStringValue("SwaggerRootUrl");
if (!string.IsNullOrWhiteSpace(rootUrl)) {
GlobalConfiguration.Configuration
.EnableSwagger(c => {
//.......
Теперь все это отлично работает для чванства и веб-сервисов, но как только активируется «ЛИНИЯ ПРОБЛЕМЫ», Log4Net в Project A (!) Молча терпит неудачу.
В этой строке используется настраиваемый метод, который находится в самописной сборке .NET "C", на которую указывает ссылка, и в основном выполняет то же, что и метод, с возможностью иметь значения по умолчанию.
Как только я использую
Вопрос
Я подозреваю, что проблема заключается в загрузке указанной сборки "C", но почему именно?
Почему Log4Net тихо терпит неудачу в проекте "A" при использовании
Примечания
- Проблема исчезает, когда я заменяю СТРОКУ ПРОБЛЕМЫ просто
предполагая, что загрузка справочной библиотеки C проблематична.