Простите меня, если на него ответили раньше, но я искал в Интернете и обнаружил, что только отчаянные люди задают именно мой вопрос, но никто не дает ответа, который я мог бы использовать.Log4net.dll + C# + Crystal Reports = ошибка
Я разрабатываю приложение в C# Visual Studio 2010, которое использует Crystal Reports. Я разрабатываю его на 32-битной системе. Все работает нормально.
Теперь я пытаюсь запустить его на другом компьютере, на котором установлена 64-битная система, установленная Crystal Reports, и возникает некоторая ужасная ошибка.
************** Tekst wyjątku **************
System.TypeInitializationException: Inicjator typów zgłosił wyjątek dla typu
'CrystalDecisions.ReportSource.ReportSourceFactory'. ---> System.TypeInitializationException:
Inicjator typów zgłosił wyjątek dla typu 'CrystalDecisions.Shared.SharedUtils'. --->
System.IO.FileLoadException: Nie można załadować pliku lub zestawu
'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' lub jednej z jego zależności.
Простите мне какой-нибудь польский язык. Это в основном означает, что он не может найти определенную версию файла log4net.dll, которая, по-видимому, должна быть использована кем-то.
Эта проблема была описана во многих местах:
log4net not logging and throwing error
http://scn.sap.com/thread/1857957
Я понимаю, что мое приложение использует/ожидает некоторые версии этого файла и Crystal Reports установлен на 64-битной машине использует другую версию ,
Еще после просмотра в Интернете я не знаю, какие шаги я должен предпринять, чтобы исправить это.
Я был бы очень благодарен за какой-нибудь «учебник для чайников», как с этим бороться.
О, и мое приложение должно быть построено как 32 бит и работать на 64 бит. Нет возможности построить его как 64 бит, другое дело перестало бы работать :(
Какова версия log4net, которую вы используете и поставляете с вашим приложением? –
Как я могу проверить его? Я не добавлял его сам, его нет в любом каталоге моего приложения. Я только что узнал о его существовании из-за ошибки. Это Crystal Reports, который берет его откуда-то. – RRM
Похоже, что 64-разрядный компьютер просто имел 64-битную версию Crystal Reports, и вам просто нужно установить 32-разрядную версию, так как это требует ваше приложение. Вы можете увидеть Архитектуру Процессора в GAC, что в log4net 1.2.10.0, вероятно, была только одна запись, так как AMD64, которая является 64-разрядной версией, и как только вы устанавливаете 32-битные Crystal Reports, должна быть запись x86 для сборка log4net. – Zack