Я разрабатываю функцию автоматического обновления для своего приложения Windows Mobile 6.5 .NET CF 3.5. Я пришел к следующему решению.
- Я использую SOAP WebService, чтобы проверить, доступна ли новая версия приложения.
- Если есть более новая версия, я получаю URL-адрес в ответе SOAP, скачайте ее. Новая версия - это просто полный установочный файл CAB.
- Как только версия загружена, я вызываю wceload с параметрами / silent и / noui в загруженном CAB. Я хочу установку без участия оператора, потому что пользователи этого приложения - водители автомобилей, которые не обладают достаточными навыками в управлении мобильными устройствами.
Процесс идет гладко, за одним исключением - параметры / noui или / silent заставляют wceload не отображать никакие окна. Мое приложение просто исчезает и в фоновом режиме устанавливается новая версия. Проблема в том, что драйверы иногда пытаются снова включить приложение слишком рано. Еще один момент: я бы хотел, чтобы мое приложение запускалось автоматически после завершения процесса обновления. Поэтому я создал отдельное exe-приложение, которое просто вызывает wceload и, если оно завершает установку, запускает обновленную версию. Все работает с исключением onr - этот установщик exe является частью моего CAB, поэтому он находится внутри него, и когда wceload устанавливает CAB, он закрывает установщик (потому что он является частью установщика CAB). Таким образом, процесс установки прерывается. У меня вопрос - есть ли способ «сказать CAB», что не следует прерывать конкретный exe из тех, которые являются частью этого CAB?
С Уважением