Я пытаюсь реализовать ELMAH в своем проекте MVC. Я прошел довольно много руководств и все настроил правильно.

Моя проблема возникает, когда я пытаюсь добавить elmah.dll в мою папку ThirdPartyLibs (где я храню все свои файлы .dll). Я загрузил файл и распаковал его в свою папку загрузок. Я добавляю -> Существующий и перехожу к .dll, и в нем говорится:

«Вы пытаетесь добавить элемент в проект, управляемый исходным кодом, но путь элемента не имеет сопоставления. Если вы продолжите добавление, этот элемент не будет добавлен в систему управления версиями. Вы хотите продолжить добавление?»

Затем я добавляю его, и мой проект терпит неудачу в части elmah следующего кода:

Line 71:     <httpModules>
Line 72:       <add name="Glimpse" type="Glimpse.Core.Module" />
Line 73:       <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
Line 74:     </httpModules>
Line 75:     <httpHandlers>

Я не уверен, что делаю неправильно, поскольку в большинстве статей предполагается, что вы знакомы с MVC, Visual Studio и можете ссылаться на .dll.

1
Mark Saluta 21 Дек 2012 в 01:35
Вы добавили ссылку на dll? Просто добавить его в свой проект недостаточно.
 – 
Jason
21 Дек 2012 в 01:42

1 ответ

Лучший ответ

Судя по сообщению об ошибке, которое вы получаете, кажется, что вы используете какой-то элемент управления версиями в Visual Studio, например Team Foundation Server. Ваш проект контролируется исходным кодом, и вы поместили сборку Elmah.dll в папку за пределами местоположения проекта, находящегося под контролем версий.

Так, например, ваш проект с исходным кодом сопоставлен с c:\myproject, а вы извлекли сборку elmah в c:\elmah и ссылались на нее из этого места. Проблема с этим подходом заключается в том, что система управления версиями больше не будет знать о расположении этой зависимой сборки.

Таким образом, одна из возможностей решить эту проблему - добавить зависимую сборку из системы управления версиями в ту же папку, например c:\myproject\Reference Assemblies\Elmah, а затем ссылаться на нее оттуда.

Или просто используйте official NuGet package.

3
Darin Dimitrov 21 Дек 2012 в 01:46
Вы также можете рассмотреть возможность использования пакета Nuget Elmah.MVC - nuget.org/packages/elmah.mvc поскольку он обеспечивает некоторую базовую конфигурацию, специфичную для MVC, и настройку обработки ошибок Elmah.
 – 
Paige Cook
21 Дек 2012 в 06:58