Я недавно обновил решение VS2005 для приложения WinMobile5 до VS2008. Решение также содержит проект CAB Builder и проект MSI Desktop Installer. Пользовательская DLL из установщика заботится о развертывании приложения и поддержке CAB-файлов, таких как Compact Framework 2.0, библиотеки сканеров и т. Д. На реальном устройстве.
Я использовал эту статью в качестве руководства по установке MSI:
http://msdn.microsoft.com/en-us/library/aa446504.aspx
Проблема в том, что CAB CF2 не может быть успешно установлен на устройство WM5 из Win7 при запуске файла Setup.exe / MSI. Однако установка из XP работает нормально.
Резюме:
-Windows7 32-битный компьютер - VS2008 / WM6 SDK (включает поддержку WM5)
-Symbol WM5 Устройство - MC70
-Windows Mobile Device Center
-Создан настольный MSI для установки CF2 CAB плюс CAB моего приложения через Custom DLL
-Во время установки (запущенной от имени администратора) CAB моего приложения успешно устанавливается, CAB CF2 говорит: «Установка не удалась»
-Как бы ни запускалось / отлаживалось приложение из VS2008, оно правильно развернет CF2, поэтому оно МОЖЕТ работать.
Интересный лакомый кусочек:
Я вытащил фанк CF2 CAB из устройства, чтобы сравнить с источником, расположенным здесь:
C: \ Program Files \ Microsoft.NET \ SDK \ CompactFramework \ v2.0 \ WindowsCE \ wce500 \ armv4i \ NETCFv2.wm.armv4i.cab
К моему удивлению, в устройстве CAB было два байта HEX, отличных от исходного. С начала:
4D 53 43 46 00 00 00 00 68 48 (от отступления) остальное такое же
4D 53 43 46 00 00 00 00 50 22 * 1029 * (из источника) остальное такое же
Когда я заменяю «68 48» CAB на «50 22» CAB и запускаю его вручную на устройстве, он прекрасно устанавливается. Итак, мой вопрос: почему источник кабины слегка изменяется, когда он достигает устройства destination ? Кроме этого, файлы идентичны.
Другие вещи, которые я пробовал:
С нуля создаем небольшое приложение, ориентированное на WM5 / CF2. Добавление проекта CAB, добавление проекта установки и развертывания. Запустите программу установки из XP, отлично! Запустите программу установки из Win7, BOOM!
/ Корень устройства не содержит журнала установки CF2. Не заходит так далеко.
VOLATILE / Setup.log не содержит "ошибки".
Я также попробовал подход UberCab (объединение нескольких CAB в один CAB). Однако при разделении на устройстве: BOOM завершится неудачно. Это как-то знает.
Я нахожусь в конце моего остроумия. Часть CF2 должна просто работать.
-Tom