Приложение VB.NET работает в IDE, но выдает ошибку при компиляции и запуске на другом компьютере. - PullRequest
1 голос
/ 15 ноября 2009

Я создал приложение с использованием VB.NET в VS2008. Когда я запускаю приложение в IDE на своем компьютере разработчика, оно работает нормально. Он также отлично работает, когда я его собираю и запускаю как exe-файл на любом компьютере, на котором также установлена ​​Visual Studio (по крайней мере, в 2005 и 2008 годах). Однако, когда я пытаюсь запустить скомпилированный исполняемый файл на любом компьютере без Visual Studio, он выдает ошибка "[имя программы] столкнулась с проблемой и закроется ..."

У кого-нибудь есть мысли по этому поводу?

Спасибо

Ответы [ 5 ]

1 голос
/ 15 ноября 2009

Я спрошу пословицу "Разве подключен к стене?" вопрос: на вашей целевой машине установлена ​​платформа .Net? Для работы программ VB.Net требуется, чтобы для работы была установлена ​​среда исполнения .Net.

1 голос
/ 15 ноября 2009

Возможно, в вашем GAC есть библиотеки, которых нет на машинах, на которых не установлена ​​Visual Studio. Проверьте, на какие библиотеки вы ссылаетесь, и попробуйте добавить dll напрямую в ваш проект.

0 голосов
/ 16 ноября 2009

Существует множество причин, по которым приложение может зависать, например

  • отсутствует файл ресурсов / конфигурации
  • целевая машина может не иметь необходимой версии .Net framework
  • приложение может быть скомпилировано для amd64, и вы пытаетесь запустить его на компьютере с архитектурой x86
  • ваше приложение не имеет разрешения на что-либо (например, чтение из HKLM) и не обрабатывает это

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

Попробуйте добавить обработчик исключений catch-all , который может вызвать всплывающее окно с предупреждением об исключении текста / трассировки стека или , установив windbg в качестве интерактивного отладчика и захватив дамп запуск приложения под отладчиком.

0 голосов
/ 15 ноября 2009

Вы можете запустить отражатель в EXE на ПК без установленного VS. Он может сообщить вам зависимые сборки и проверить, есть ли у вас их в этой системе.

0 голосов
/ 15 ноября 2009

Сообщение об ошибке, которое вы описываете, является нарушением памяти. Но слишком мало информации, чтобы определить, в чем проблема.

Чтобы определить проблему, напишите программу «hello world» и посмотрите, сможете ли вы воспроизвести ошибку. Включите все ваши заявления об использовании. Если по-прежнему происходит сбой, я бы позаботился о том, чтобы все необходимые библиотеки были доступны на вашей целевой машине. Вы можете поместить их в ту же папку, что и ваш исполняемый файл для тестирования.

Если все в порядке, вы должны начать блокировать части кода, чтобы предотвратить их выполнение (либо закомментировав их, либо используя операторы return), и попытаться воспроизвести проблему. Когда проблема исчезнет, ​​последний закомментированный вами код будет с ошибкой.

...