У меня есть проект в C#, который использует 'log 4net'. Я должен использовать эту C# DLL из C ++ проекта, который является основной программой. Итак, я реализовал проект оболочки в CLI / C ++, но я получаю сообщение об ошибке с этим журналом 4net .dll.
У меня проблема с 'log 4net', когда я вызываю C# dll из проекта консольного приложения CLR. Я знаю, что мой C# проект отлично работает с журналом 4net, потому что я протестировал его с консольным приложением в C#, делая то же самое, что я хочу сделать в качестве оболочки. В обоих проектах (приложение консоли в C# и CLR) я скопировал журнал 4net .dll в папку процесса .exe.
В качестве тестового примера, чтобы понять, что я имею в виду ... Для C# консольное приложение У меня есть этот тестовый код:
static void Main(string[] args)
{
GeneratorStatus genStatus = new GeneratorStatus();
string log = genStatus.GetGenStatusMessage();
}
Для консольного приложения CLI / C ++ у меня есть этот код:
int main(array<System::String ^> ^args){
GeneratorStatus^ genStatus = gcnew GeneratorStatus();
String^ log = genStatus->GetGenStatusMessage();}
В этом последнем случае я получаю эту ошибку:
System.IO.FileLoadException: журнал «Не удалось загрузить файл или сборку» 4net, версия = 1.2.15.0, культура = нейтральная, PublicKeyToken = 669e0ddf0bb1aa2a 'или одна из ее зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040) '
Я понял, что в проекте консольного приложения C# есть файл App.config, в котором указано следующее о log 4net:
<dependentAssembly>
<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-2.0.8.0" newVersion="2.0.8.0"/>
</dependentAssembly>
У меня нет такого файла для проекта CLI / C ++. В другом посте я видел, что мне нужно определить файл app.config для моего приложения C ++ и включить в него конфигурацию log 4net. Однако я не знаю, как это сделать. Не могли бы вы помочь мне? Или если у вас есть другие советы ...