Загрузка файла в локальную папку обычно зависит от вашего репозитория, т.е. вам понадобится немного другой код, если вы храните его на общем ресурсе или, скажем, в веб.
Вы должны рассмотреть возможность обеспечения проверки версии перед загрузкой через какой-либо файл манифеста или запись базы данных, чтобы избежать загрузки всего патча только для проверки его версии.
Как только вы загрузите отсортированную часть (опять же, зависит от хранилища), вы можете запустить установку CAB из своего приложения, позвонив по телефону wceload.exe
:
Process proc = Process.Start("wceload.exe", "\"" + Path.Combine(applicationPath, updateFileName) + "\"");
proc.WaitForExit();
Однако пользователю потребуется взаимодействовать и нажать «ОК», чтобы установить новую версию поверх старой.
[Изменить]
Некоторые производители устройств (например, Intermec) предоставляют способы автоматической установки CAB при перезагрузке, но это зависит от конкретного устройства, поэтому вам придется ознакомиться с этим.