none
Не могу установить свою программу на компьютер, на котором установлена Windows 7 домашняя базовая 64р. RRS feed

  • Вопрос

  • Друг попросил поставить на его ноутбук одну из моих программ.  Есть Версия разработанная в VS2010 prof и новая версия разработанная в VS2017 prof.  Язык программирования C#. Класс - приложение WindowForm. Приложение ведет архив данных. Использует Sq lServer 2014 express.  Сервер уже успешно установлен. База создана. Дистрибутив  получен с помощью мастера публикации (свойства проекта,  вкладка публикация.  Целевая платформа Net.Framework 4.6.1 (vs2017) и Net.Framework 4 (vs2010) Цель платформы anyCPU).

     Для обоих версий в процессе установки она неожиданно прерывается и возникает  сообщение «прекращена работы программы» и запрос разрешения послать отчет в Микрософт.

     Как видно из списка программ после установки, программа установилась. Т.е. сообщение относится к запуску программы после установки.  Установленную программу можно запустить – получаем тот же результат.  Помещение MessageBox первым оператором в метод Load формы ничего не меняет. То есть проблема возникает на этапе загрузки. Программа версии Vs2010 успешно работает несколько лет на нескольких компьютерах. Новая версия тоже успешно работает.

    Оба дистрибутива проверил на двух компьютерах Windows 7 prof 64 разряда и Windows 7 prof 32 разряда. На обоих компьютерах установка идет безупречно.

     Можно было бы сказать, что Windows 7 домашняя базовая не допускает установки Windows Form, но это не так. Сделал небольшую тестовую форму, в коде создается и заполняется экземпляр класса одной из моих библиотек и выводится результат на форму. Нет проблем

    Компьютер был восстановлен. Чистая Windows, Офис, упаковщик, читалкаr PDF (Adobe), антивирус  Eset и Sql Server 2014 express -  все что установлено. Обновления ставил почти два дня.

    Попробовал сделать дистрибутив только на 64р процессор. Попробовал установить с сайта микрософт Net.Framework 4.6.1. Результата никого.

    Друг, наверное,  ничего не скажет, но может подумать , что я либо пожадничал, либо я никудышный программист.  В мои 70 лет не хотелось бы потерять лицо. Помогите, пожалуйста, коллеги.

    В сообщении для микрософт  я не нашел причины или описания проблемы. Список моих библиотек, какие то ключи программы.

     Если это может помочь,  я опубликую эти файлы в следующем сообщении.
    21 сентября 2018 г. 17:22

Ответы

  • Для начала откройте журнал событий (event viewer) и найдите данный краш. Возможно там имеется полезная информация.

    This posting is provided "AS IS" with no warranties, and confers no rights.

    • Помечено в качестве ответа Miklv 22 сентября 2018 г. 6:58
    21 сентября 2018 г. 17:32
    Модератор

Все ответы

  • Для начала откройте журнал событий (event viewer) и найдите данный краш. Возможно там имеется полезная информация.

    This posting is provided "AS IS" with no warranties, and confers no rights.

    • Помечено в качестве ответа Miklv 22 сентября 2018 г. 6:58
    21 сентября 2018 г. 17:32
    Модератор
  • Попробуйте установить обработчики событий AppDomain.UnhandledException и Application.ThreadException и сделайте запись в лог информации об исключении (Exception.ToString()). Устанавливать их надо как можно раньше, в начале функции Main (если даже она не запускается, этот шаг пропускаете).

    Далее, включите на целевой машине формирование дампов по инструкции https://docs.microsoft.com/ru-ru/windows/desktop/wer/collecting-user-mode-dumps

    Соответственно, пробуете запускать и в зависимости от результата, изучаете либо сообщения в логе, либо дамп (см. https://ru.stackoverflow.com/a/838297/240512)

     
    • Изменено VadimTagil 21 сентября 2018 г. 19:24
    21 сентября 2018 г. 19:23
  • Большое спасибо обоим ответившим. Реально я воспользовался журналом событий. До второго предложения просто не дошел.  В журнале событий в одном из событий нашел подсказку что проблема связана с чтением XML файла. У меня используются конфигурационные файлы, объединяющие несколько проектов одного решения. Для получения конфигурационных параметров используется отдельный класс.  При запросе параметра метод get осуществляет чтение из конфигурационного файла. Глобальные параметры класса формы задаются обращением к конфигурационному классу. Поэтому до загрузки формы осуществлялось обращение к конфигурационному файлу. Я файл я хотел сделать быстрее и исправил вручную файл с другого компа. Сделал ошибку и не заметил ее.

    Для исключения подобных проблем перенесу чтение конфигурационных параметров в метод Load и поставлю обработку ошибок.

    Помощь сообщества великая сила. Большое спасибо

    22 сентября 2018 г. 6:58