2013-10-08 1 views
0

Я запускаю .NET.dll s на Windows Server 2012. Комплекты .NET были составлены с C# кодом на OS X с Xamarin 4.0. (да, я знаю странную настройку, но я разработчик игры) В целом они отлично работают, но когда дело доходит до проверки информации Exception, это не так хорошо. Я пытаюсь извлечь информацию из объекта Exception, но все пусто. Я также попытался скопировать файлы .mdb вместе с .dll и убедиться, что я строю в Debug и с символами отладки. Например, этот кодне может получить stacktrace, исходная строка # информация из Mono .dll

log.Error (ex.ToString()); 
var st = new StackTrace(ex, true); 
var frame = st.GetFrame(0); 
var line = frame.GetFileLineNumber(); 
log.ErrorFormat ("st: {0}, frame: {1}, line: {2}", st.ToString(), frame.ToString(), line); 

Формирует вывод, как это, только имя метода, в основном

System.NullReferenceException: Object reference not set to an instance of an object. 
at Mindlube.CD3.RandomMatchMaker.ProcessMatchQueue() [ThreadFiber-1] ERROR Mindlube.CD3.App [(null)] - st:  
at Mindlube.CD3.RandomMatchMaker.ProcessMatchQueue(), frame: ProcessMatchQueue 
at offset 927 in file:line:column <filename unknown>:0:0, line: 0 

Любые предложения для получения более подробной информации Exception? Использование Visual Studio в Windows в настоящее время не является вариантом, потому что у меня нет времени для обновления всей моей среды разработки. Поэтому не говорите «использовать VStudio» :)

+0

Почти все случаи «NullReferenceException» одинаковы. См. «[Что такое исключение NullReferenceException в .NET?] (Http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-in-net)» для некоторых советов. –

+0

Вы когда-нибудь получали решение? У меня такая же проблема. Я установил вывод сборки для включения полной отладочной информации (в Visual Studio), а также выполнил моно с --debug безрезультатно. – joelc

ответ

2

Это потому, что .NET не понимает файлы mdb.

К сожалению, нет способа конвертировать файлы mdb в файлы pdb, вашими вариантами могут быть либо написать свое собственное, либо выполнить ваше приложение с помощью Mono на вашей машине с Windows.