Приложение работает нормально в Windows XP, но происходит сбой приложения при запуске в Windows 7? - PullRequest
3 голосов
/ 07 марта 2012

Я разработал приложение wpf на моей машине Windows XP с VS 2010, ориентированным на .net framework 3.5 sp1 и использующим инструментарий wpf.Я использовал sqllite в качестве базы данных приложения.Когда я развернуть это приложение на Windows XP SP2 или SP3, он работает нормально.но когда я развертываю это приложение на Windows 7 Home Premium x64 или Windows 7 Ultimate X84 и когда я нажимаю на кнопку, которая открывает всплывающее окно, приложение вылетает.но когда я устанавливаю режим совместимости для Windows XP SP3 для этого приложения.приложение отлично работает в Windows 7. Я очень запутался в проблеме. Пожалуйста, дайте мне знать, если вы найдете проблему и решение?

Ответы [ 3 ]

2 голосов
/ 07 марта 2012

Лучший способ - установить среду разработки на компьютер с Win7 и запустить программу в отладчике.

Если это не вариант, вы можете добавить обработчик событий в AppDomain.UnhandledException. В обработчике событий добавьте простой вызов в окно сообщения, которое показывает максимально возможное количество исключений, включая трассировку стека. Это должно показать вам ошибку, которая вызывает сбой программы.

1 голос
/ 12 марта 2012

Я думаю, что нашел решение.Когда я попытался установить приложение в любое другое место, кроме файлов программы, приложение работает нормально.Может быть проблема в том, что я поместил свой файл базы данных sqllite в папку установки, которая по умолчанию является c: \ program files, и в win 7 разрешение на запись отказано.поэтому, когда я пытаюсь вставить какие-либо записи в базу данных, это показывает ошибку.

0 голосов
/ 08 марта 2012

Скорее всего, вы используете пути, которые ограничены в Windows 7. Записываете ли вы данные или храните базы данных по любому из следующих путей? Для этих путей требуется доступ администратора для записи.

Папки
C: \ Documents and Settings \ Все пользователи
C: \ Program Files
C: \ ProgramData

Ульи реестра
HKEY_CLASSES_ROOT
HKEY_LOCAL_MACHINE

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

Решение состоит в том, чтобы либо переместить динамические файлы куда-нибудь, например, %AppData% или %LocalAppData%, либо изменить разрешения для необходимых файлов или папок, чтобы предоставить всем пользователям доступ для чтения / записи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...