2012-04-30 7 views
0

Я прихожу к вам, потому что я в отчаянии. Я разработал приложение GTK # на C# с последним MonoDevelop. Он создан для платформы .NET framework 4.0/x86, и единственной внешней библиотекой, которую он использует, является официальный соединитель Mysql .Net. Он предназначен для работы под Windows XP.Сбой приложений C# перед запуском

Это первое приложение, которое я делаю с этой IDE. Я был очень доволен результатами и временем разработки, но развертывание - настоящая головная боль.

Он отлично работает на машине разработки. Отладка чиста. Все хорошо.

Тогда, поскольку я не мог найти никакой информации о развертывании, я установил чистую XP, чтобы попробовать ее и посмотреть, что мне нужно установить на машине клиента.

Я установил SP3, .NET 4.0 и скопировал пакет выпуска со всеми DLL, упомянутыми в журнале сборки (что заставило его работать вне MonoDevelop на машине разработки). Но я получаю сообщение о том, что «приложение столкнулось с проблемой и должно закрыть» ошибку, без исключения, в файле kernel32.dll, offset 0012aeb.

Я попытался установить .NET 3.5 до версии 4.0, обновленного IE (на всякий случай ...), скопировал больше GTK # и Monodevelop DLL в папку exe, установил соединитель Mysql .NET, установил Mono 2.8 ... Но ничего. Все еще получаю эту необъяснимую ошибку.

Поиски Google и StackOverflow не помогли мне. Я исследовал и пробовал много вещей за последние двенадцать часов или более, не двигаясь с этой машины.

У вас есть совет? Что может быть причиной этого? Есть ли способ отладки exe (без установки VS ...)? Кто-нибудь знает, каковы все зависимости этого вида исполняемого файла?

+0

если вы запустите его из командной строки с помощью отладочной сборки, это сбой? если да, то какой стек? – payo

+0

Как действительно низкоуровневый тест, объедините код в каждом методе с помощью try-catch и просто удалите исключение stacktrace и сообщение в MessageBox. –

+0

Большое спасибо за быстрые ответы, все. Я собираюсь попробовать это и посмотреть, что я узнаю. – Gabriel

ответ

1

WinDbg может помочь вам выяснить некоторые JIT проблемы ...

Несмотря на то, что AINT интуитивным и требуют навыков, стоит попробовать. может что-то всплыть.

0

Если это предназначено для запуска под Windows, вы должны, вероятно, скомпилировать его с помощью компилятора Visual C#.

Однако, связанные с вашей проблемой - получите debugger на вашем компьютере развертывания и запустите приложение на нем. Это лучший способ выяснить проблему, потому что мы действительно не можем догадаться об этом.

Mono Application Deployment Guidelines

+0

Да, я должен был использовать VC# ... Идея заключалась в использовании бесплатного программного обеспечения. Я видел рекомендации, но, как я вижу, они предназначены для Linux. Попробуем попробовать другой отладчик (отладка внутри Monodevelop не вызывает ошибок) и посмотрим, что произойдет. Спасибо. – Gabriel

0

Есть несколько вариантов для установки Visual Studio на производственной машине, один из них является Remote Debugging Monitor. Это не требует установки Visual Studio. Вы можете скопировать файлы с вашей машины разработки на ваш сервер. Я получил их под C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger.

Вы также можете использовать его для Remote Debugging of a Project Built Locally.

Смежные вопросы