Golden Basim Ответов: 1

Почему программа перестала работать после обновления (замены exe-файла) ?


привет,
1 - я создал программу с использованием C# , Devexpress , EF и MySQL.
2 - я установил его на ПК1 с помощью расширенного установщика.
3 - программа работала нормально.
4 - Через некоторое время я изменил некоторые функции и скопировал exe-файл и языковые файлы в каталог программы на PC1, эта ошибка появилась, когда я попытался запустить ее

программа перестала работать

Что я уже пробовал:

я скопировал те же файлы на другой компьютер (PC2), и он работает нормально.
почему эта ошибка появляется у некоторых клиентов ? и как ее решить ?

Richard MacCutchan

Вы должны создать и установить новую версию с помощью установщика, который вы использовали изначально. Вполне возможно, что вы пропустили какой-то компонент во время копирования.

Golden Basim

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

1 Ответов

Рейтинг:
0

OriginalGriff

Мы понятия не имеем - мы не можем.
Мы не знаем вашего кода, мы понятия не имеем, что он должен делать, а тем более как он это делает, и они, вероятно, будут значительными.

Так что это будет зависеть от вас - и поскольку вы не можете использовать отладчик на клиентских компьютерах, вам придется делать это по старинке: вести журнал.
Добавьте код журнала для записи того, как запускается ваша программа: add try...catch блоки, чтобы попытаться найти то, что терпит неудачу, и записать это также.
Отправьте новую версию клиенту, попросите его отправить файл журнала обратно.
Добавьте еще протоколирование - на этот раз более конкретное, поскольку более раннее протоколирование должно помочь вам "сузить" область, на которой нужно сосредоточиться, - и повторите процесс. Имейте в виду, что это может занять несколько (до "многих" или даже "много") итераций, прежде чем вы получите действительно полезную информацию.

Журналы помогают вам понять, что происходит, что должно подсказать вам, где происходит сбой вашего приложения, а это, в свою очередь, помогает вам понять, почему. Но пока у вас нет этого, вы не можете сделать ничего, чтобы действительно исправить это - кроме предположения и надежды, и это почти всегда занимает на порядок больше итераций, чем подход "лог и точная настройка".

Извините, но мы ничего не можем сделать для вас!


Golden Basim

Есть ли вероятность, что проблема связана с Windows, а не с кодом? Вот тут-то программа и не заработала.

OriginalGriff

Это может быть, но мы понятия не имеем, какие системы используются, или если они даже Windows - не забывайте, что Mono позволяет вам работать .В наши дни сетевые приложения на Linux - это еще одна вещь, которую вам нужно будет проверить!

Golden Basim

клиент использует Windows 7 , эта ошибка не появляется на 100% windows 10.
эта ошибка появляется только в windows 7 sp1.

OriginalGriff

Поэтому начните с настройки виртуальной машины Win7 SP1 на вашем dev-компьютере, проверьте, что она не работает, продублируйте ее, установите VS на одну из копий и начните использовать отладчик.

Наличие версии, в которой она терпит неудачу, - это важный шаг в разработке причины!

Golden Basim

я уже сделал это , но это работает без каких-либо ошибок

OriginalGriff

Тогда это не просто Win 7 (или даже не Win 7) - и вы возвращаетесь к журналированию, чтобы попытаться выяснить, что именно.
Извините, это трудоемкий процесс, просто нет "одного решения" - особенно когда мы понятия не имеем о вашем коде и интимных деталях того, как он работает.