Какую кабину я должен установить на свое портативное устройство для установки CF версии 2?
Исходя из того, что я прочитал здесь, чтобы установить CF версию 2 на мое портативное устройство, я должен скопировать один из файлов cab здесь:
... но какой?
Данное устройство представляет собой Symbol 3090, на котором в настоящее время установлена только версия CF 1.0.3316.00 (1.0 SP2). Версия ОС устройства - 05.00.1400.
ЦП устройства, предположительно, "ARMV4I", так как аналогичное устройство (Motorola 3190) говорит о том, что оно оснащено им.
ОБНОВИТЬ
Основываясь на том, что я вижу здесь, когда я нажимаю "эту ссылку" здесь:
- ИЛИ - Если на вашем устройстве установлена Windows Mobile 5 или новее, нажмите эту ссылку и сохраните файл на рабочем столе вашего компьютера.
... кажется "NETCFv2.wm.armv4i.cab", вероятно, лучший выбор.
Есть опровержения?
ОБНОВЛЕНИЕ 2
Я скопировал файл, который считал одним, и щелкнул его на устройстве, но:
Что в прославленной памяти Сэма Л. Клеменса происходит здесь?!?
ОБНОВЛЕНИЕ 3
Затем я скопировал другой файл по ссылке выше, которая немного отличалась (2,12 МБ, в отличие от 2,14 МБ, с одной стороны), и попытался запустить его, и получил то же сообщение об ошибке, что и выше.
ОБНОВЛЕНИЕ 4
Пытаясь установить по последней ссылке, вижу:
ОБНОВЛЕНИЕ 5
На самом деле, оказывается, что мне действительно может потребоваться установка CF версии 1 после холодной загрузки устройства... но я не знаю, доступна ли еще версия 1 CF. Это единственная версия, на которой будет работать существующий.exe, но на моем компьютере есть только cab-файлы для версий 2 и 3.5...???
ОБНОВЛЕНИЕ 6
В самой последней версии.exe (собирает и компилирует, но не запускает ни на одном устройстве), в области References у него три, по три mscorlibs; версии:
1.0.5000.0
2.0.0.0
3.5.0.0
Все они имеют одинаковый токен открытого ключа (такой же, как показано на снимке экрана)
Единственная другая мультиреференция - это System, которая имеет версии 2 и 3.5.
И, ниже System.Xml, есть три coredll.dll, хотя они пишутся по-разному:
coredll.dll
CoreDll.dll
CoreDll.DLL
(нет информации ни для одного из них...???)
ОБНОВЛЕНИЕ 7
Я скопировал NETCFv2.wce4.ARMV4.cab в 3090.
Я 2 раза щелкнул его на устройстве, но получил это:
И так, я отступил (выбрал "Нет").
Таким образом, продолжайте неослабные страдания случайного портативного разработчика.
ОБНОВЛЕНИЕ 8
Для проекта задана версия Framework == v2.0, платформа == Windows CE, целевое устройство == классический эмулятор Windows Mobile 6 (один из немногих вариантов выбора эмулятора, который у меня есть), и в результате показано, что используется ARMV4i развернуто:
Deploying '%CSIDL_PROGRAM_FILES%\Microsoft SQL Server Compact Edition\v3.5\Devices\wce500\ARMV4i
\sqlce.ppc.wce5.armv4i.CAB'
Deploying '%CSIDL_PROGRAM_FILES%\Microsoft SQL Server Compact Edition\v3.5\Devices\wce500\ARMV4i
\sqlce.repl.ppc.wce5.armv4i.CAB'
Deploying '%CSIDL_PROGRAM_FILES%\Microsoft SQL Server Compact Edition\v3.5\Devices\wce500\ARMV4i
\sqlce.dev.enu.ppc.wce5.armv4i.CAB'
Deploying 'C:\Program Files (x86)\Motorola EMDK for .NET\v2.8\SDK\Smart Devices\wce500\armv4i\symbol.all.arm.cab'
И когда я запускаю.exe в эмуляторе, происходит сбой с сообщением "Ошибка. Произошла непредвиденная ошибка в Platypus.exe. Выберите" Завершить "и перезапустите эту программу или выберите" Подробно "для получения дополнительной информации. Для этого приложения требуется более новая версия MS ..NET Compact Framework, чем версия, установленная на этом устройстве."
Выбор кнопки "Подробности" усиливает душевную боль: "TypeLoadException Для этого приложения требуется более новая версия MS .NET Compact Framework, чем версия, установленная на этом устройстве".
2 ответа
Предполагая, что вы используете версию 3090 для WinCE 4.2 (входит в 4.2 и 5.0), вы должны продолжить установку, используя NETCFv2.wce4.ARMV4.cab
, Сообщение "Программа не совместима..." является только предупреждением и не очень умным. Есть даже способ отредактировать кабину, чтобы убрать это предупреждение, если бы вы захотели, хотя моя память не позволяет мне точно сделать это. Я должен был сделать это, чтобы разрешить автоматическую установку раньше (иначе мешающий экран мешает вам).
Для начала вам необходимо выяснить, какую версию CE вы используете. Вы можете найти это, перейдя в Свойства системы. Также, когда вы находитесь в System Properties, обратите внимание, какой процессор вы используете (arm, mips ...). Если вы используете Windows CE 4.2 или выше, вы можете выбрать файл cab из папки wce400. Если вы используете Windows CE 5.0 или выше, вы можете выбрать файл cab из папки wce500. Обратите внимание, что вы не можете установить.net 2.0 на Windows CE 4.1 или ниже, согласно документации Microsoft, однако, я заметил, что минимальная настройка версии для файлов cab - 4.0, так что вы можете ее взломать. Как я уже говорил ранее, на странице "Свойства системы" указан тип используемого вами процессора. Из этого выберите соответствующую подпапку в wce400 или wce500. В большинстве папок для каждого процессора должен быть только один файл cab. Если имеется более одного cab-файла, посмотрите, содержит ли имя файла wm для Windows Mobile, wce для windows ce или ppc для карманного ПК, и выберите наиболее подходящее для вас.
Вы также можете отгадать работу по угадыванию всего этого процесса, создав INI-файл со следующим текстом и используя ceappmgn.exe, чтобы выбрать и установить подходящий Cab-файл для вас.
[CEAppManager]
Version = 1.0
Component = NETCF
[NETCF]
Description = .NET Compact Framework v2.0
CabFiles=wce400\armv4\NETCFv2.ppc.armv4.cab,wce400\armv4\NETCFv2.wce4.ARMV4.cab,wce400\mipsii\NETCFv2.wce4.MIPSII.cab,wce400\mipsiv\NETCFv2.wce4.MIPSIV.cab,wce400\sh4\NETCFv2.wce4.sh4.cab,wce400\x86\NETCFv2.wce4.x86.cab,wce500\armv4i\NETCFv2.wm.armv4i.cab,wce500\mipsii\NETCFv2.wce5.mipsii.cab,wce500\mipsiv\NETCFv2.wce5.mipsiv.cab,wce500\sh4\NETCFv2.wce5.sh4.cab,wce500\armv4i\NETCFv2.wce5.armv4i.cab