Microsoft Unity теряет номер строки, где произошло исключение, что мне делать?

В Release Build во время разрешения Microsoft Unity, если возникает какое-либо исключение, StackTrace не имеет «номера строки», в которой произошло исключение. Без такой информации отладка может быть проблематичной... Ребята, как вы с этим справляетесь?

Я полагаю, это связано с тем, что Microsoft Uniy использует Reflection.Emit. Верна ли моя догадка?

ниже пример


Project ABC uses Microsoft Unity to resolve ViewModel XYZ during initilization.
XYZViewModel constructor throws an exception. 

Source : Microsoft.Practices.Unity
Message : Resolution of the dependency failed, type = "XYZViewModel", name = "(none)".

Exception occurred while: Calling constructor XYZViewModel().

Exception is: Exception - test exception StrackTrace line number

На момент исключения контейнер был:

  Resolving XYZViewModel,(none)

  Calling constructor XYZViewModel()
////// no line number in XYZViewModel code 

Type : Microsoft.Practices.Unity.ResolutionFailedException
TargetSite : System.Object DoBuildUp(System.Type, System.Object, System.String, System.Collections.Generic.IEnumerable`1[Microsoft.Practices.Unity.ResolverOverride])
StackTrace :    at Microsoft.Practices.Unity.UnityContainer.DoBuildUp(Type t, Object existing, String name, IEnumerable`1 resolverOverrides) in e:\Builds\Unity\UnityTemp\Compile\Unity\Unity\Src\UnityContainer.cs:line 515
////// has line number in Microsoft Unity code 

   at Microsoft.Practices.Unity.UnityContainer.Resolve(Type t, String name, ResolverOverride[] resolverOverrides) in e:\Builds\Unity\UnityTemp\Compile\Unity\Unity\Src\UnityContainer.cs:line 173
///// has line number in Microsoft Unity code 

person athos    schedule 03.11.2011    source источник
comment
Обычно вам нужно попросить компилятор C# сгенерировать .pdb (файлы символов) вместе со сборками (exe/dll), чтобы при выполнении приложения можно было распечатать информацию о номере строки.   -  person Lex Li    schedule 03.11.2011
comment
администратор: Комментарий Лекса - правильное решение, однако он использовал комментарий вместо ответа, как я могу закрыть вопрос?   -  person athos    schedule 03.11.2011


Ответы (1)


Вики сообщества. Ответ в комментарии. Любой, кто найдет эту тему в поиске, увидит, что там есть ответ, и с большей вероятностью будет искать, надеюсь, полезный ответ.

«Обычно вам нужно попросить компилятор C# сгенерировать .pdb (файлы символов) вместе со сборками (exe/dll), чтобы при выполнении приложения можно было распечатать информацию о номере строки. — Лекс Ли

person Community    schedule 18.03.2015