Подтвердить что ты не робот

Проблема зависимости ссылочной сборки журнала 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, но он не работает. Любая помощь в решении этой проблемы с зависимостями будет очень оценена.

Спасибо

4b9b3361

Ответ 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