Я очень новичок в этом, поэтому я прошу прощения, если мой вопрос плохо структурирован или просто не в том месте, и т. Д. Я хорошо искал решения для этого и попробовал несколько различных подходов, но покане нашел ничего, что работает так ...
У меня есть решение, которое использует Nhibernate, и, следовательно, должен использовать log4net V1.2.10.0, который входит в папку log4net / 2.0 /.Однако мое решение также связано с рядом других решений, к которым у меня очень ограниченный доступ.Они используют тот же log4net V.1.2.10.0, но в папке: log4net / 1.2 /
Когда я запускаю свое решение, я получаю эту ошибку.
{"Could not load file or assembly 'log4net, Version=1.2.10.0, Culture=neutral,
PublicKeyToken=e27b8fa57f63a98d' or one of its dependencies. The located assembly's
manifest definition does not match the assembly reference. (Exception from HRESULT:
0x80131040)":"log4net, Version=1.2.10.0, Culture=neutral,
PublicKeyToken=e27b8fa57f63a98d"}
Я пытался изменить решения, которые он вызывает, однако каждый раз, когда я исправляю одно, я получаю ошибку в этом решении, как только оно пытается использовать другое решение, поэтому я должен изменить другоеи так далее.Просто слишком много решений, которые нужно изменить, и слишком много взаимозависимостей с другими решениями, которые я абсолютно не могу контролировать, чтобы я мог изменить их все так, чтобы они использовали log4net / 2.0.
Я нашел другой вопрос ( Ссылка на 2 разные версии log4net в одном и том же решении ), который, на мой взгляд, в основном та же проблема, и они связывают app.config с привязкой, однакоЯ не могу понять это правильно, так как я все еще получаю ту же ошибку.Привязка, которую я включил в свой app.config, такова:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="log4net" publicKeyToken="e27b8fa57f63a98d" />
<codeBase version="1.2.10.0" href="2.0\log4net.dll" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="log4net" publicKeyToken="1b44e1d426115821"/>
<codeBase version="1.2.10.0" href="1.2\log4net.dll" />
</dependentAssembly>
</assemblyBinding>
</runtime>
Я не уверен, что означает ответ на другой вопрос, когда он говорит: «Вы создаете 2 папки в своем проекте по одной для каждойверсия log4net. Вы помещаете каждый файл log4net.dll в соответствующую папку, добавляя файл в решение (не с добавлением ссылки). Вы можете установить свойство копирования в выходной каталог, чтобы всегда копировать его, чтобы он автоматически копировался в выходной файл.папка при сборке. "И нужно ли мне делать это с каждым решением, на которое ссылается мое решение?
В идеале я хочу иметь возможность внести поправку в свое решение, которое просто означает, что ему все равно, какой log4net использует какое-либо из решений, но они все равно могут передавать сообщения журнала между собой.Я предполагаю, что это возможно, поэтому любая помощь будет высоко ценится.Или это, или как мне отключить регистратор nHibernate, чтобы ему было все равно, какой log4net я использую, чтобы я мог просто продолжать использовать log4net / 1.2, который используют все другие решения.Я пробовал все виды вещей, чтобы отключить его, но все равно кажется, что он пытается найти log4net / 2.0.