Проблема зависимости ссылочной сборки журнала Log4net
Я разработчик Java и только что начал изучать С# для разработки проекта пары. Я рад видеть, что многие фреймворки Java, с которыми я привык работать (log4j, ant, hibernate и т.д.), Имеют свои .net-версии (log4net, nant, nhibernate).
Я только что создал проект и попытался установить в нем ссылку на сборку log4net, но у меня появляется следующее предупреждение (за которым следуют 4 ошибки, сообщающие о сбое в распознавании пространства имен и классов log4net):
Связанная сборка "log4net" не может быть разрешен, поскольку он имеет зависимость от "System.Web, Версия = 4.0.0.0, Культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a", который не находится в фреймворк ".NETFramework, Version = v4.0, профиль = Client". Удалите ссылки на сборки не в целевых рамках или рассмотрите вопрос о перенацеливании вашего проекта.
Я добавил ссылку на System.Web.ApplicationServices
и System.Web.Services
, но он не работает. Любая помощь в решении этой проблемы с зависимостями будет очень оценена.
Спасибо
Ответы
Ответ 1
UPDATE
Если вы все еще получаете эту ошибку, вы используете устаревшую версию log4net, и вы должны рассмотреть возможность обновления до текущей версии, который не требует полной среды .NET 4.0. Благодаря @Philippe для указания этого в комментарии.
Ваш проект ссылается на профиль клиента .NET 4.0, который не включает System.Web; вам действительно нужно ссылаться на полную структуру.
См. Как: настроить конкретную версию или профиль .NET Framework в MSDN для инструкций.
- В Visual Studio откройте проект, который хотите изменить.
- Щелкните правой кнопкой мыши проект в обозревателе решений и выберите "Свойства".
-
В конструкторе проектов найдите список Target Framework следующим образом.
- Для проектов Visual Basic перейдите на вкладку "Компиляция", а затем нажмите Расширенные параметры компиляции. Цель Список Framework находится в расширенном Диалоговое окно "Параметры компилятора".
- Для проектов Visual С# список Target Framework находится на Вкладка приложения проекта Дизайнер. Для получения дополнительной информации см. Страница приложения, проектировщик проектов (С#).
- Для проектов Visual F # список Target Framework находится на Вкладка приложения проекта Дизайнер.
-
В списке Target Framework выберите версию .NET Framework или профиль, который вы хотите. Когда вы нажимаете ОК, проект выгружается, а затем перезагружается в комплексной разработке среды (IDE). Проект теперь задает версию .NET Framework который вы только что выбрали.
Возможно, также интересен Устранение ошибок таргетинга .NET Framework.
Ответ 2
Задайте проект для таргетинга на ".Net 4.0 Framework", а не "Профиль клиента .NET Framework Framework" в диалоговом окне свойств проекта.
Ответ 3
Просто небольшое обновление.
Эта проблема была зарегистрирована почти 3 года назад и была исправлена только в этом месяце. Итак, следующая версия log4net (после версии 1.2.10) должна быть хорошо работать с каркасами профиля клиента.
https://issues.apache.org/jira/browse/LOG4NET-174
Ответ 4
Если вы получаете эту ошибку с версией 1.2.11, и вы не хотите менять структуру проекта, просто установите версию для профиля клиента. Это находится в папке net-cp
в двоичном дистрибутиве.
Ответ 5
В качестве ссылки для будущих пользователей:
Не забудьте также УСТАНОВИТЬ рамки, на которые вы нацелились!
(Я сам думал, что, поскольку все папки (v4.0x, v2.0X и т.д.) Были там, у меня были все рамки. НЕ!
Оказывается, у меня только был установлен .NET 4.0 профиль клиента, установленный в моей системе, и не удалось найти System.Web, хотя была нацелена правильная структура.
В любом случае, загрузите необходимую инфраструктуру .net здесь:
.NET Frameworks Загрузка Microsoft