На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: maxim84_, juice
  
> Как сделать cab файл, который работает на мобильных устройствах?
    Пишу сюда, потому как работа вся происходит на сервере. Суть в том, что есть некий cab файл, который делает студия (2008), для установки на устройстве. Все отлично работает. Cab ставится, и все запускается. Но.

    Необходимо при скачивании этого cab файла с сервера изменить в нем содержание одного XML файла. Для этого пытаюсь использовать библиотеку Microsoft.Deployment.Compression.Cab. Аналогично тому, как описано тут например.

    Т.е. сервер получает изначальный cab файл, распаковывает его, изменяет содержимое нужного файла, запаковывает распакованные файлы в cab обратно. Но этот новый cab не устанавливается на устройстве. И имеер меньший размер, чем оригинальный. Ну это ладно, допустим разная степерь сжатия. При установке на устройстве говорит "Installation of *.cab was unsuccessful". И все.

    Пробовал смотреть в папке "Application data/Volatie", ничего там нет. Вообще ничего, пустая.
    Пробовал запаковывать обратно тем же объектом, которым распаковывал (сначала делал разные).
    Запаковываю папку, в которую распаковывается. По файлам пробовать не стал, потому как внутри все равно папка первращается в список файлов.

    В чем может быть разница между тем cab файлом который делаю я и тем, который делает студия???

    Код примерно такой:

    ExpandedWrap disabled
                  var unpackDir = Unpack(sessionFilename);
       
                  ProcessDefaultSettings(Path.Combine(unpackDir, "DefaultSettings.xml"));
       
                  var c = new CabInfo(sessionFilename);
       
       
       
                  c.Pack(unpackDir);
      //            var c2 = new CabInfo(Path.GetDirectoryName(sessionFilename) + "/NewCab.cab");
      //            c2.Pack(unpackDir);


    SessionFile это пусть к оригинальному cab файлу.
    Фнкция Unpack распаковывает его в unpackDir.
    ProcessDefaultSettings изменяет нужный Xml. Правда это тестовый варинат, и файл насамом деле там не так называется, студия его обзывает по своему. Но это назнвания можно в _setup.xml найти, котоырй внутри cab находится. Вобщем это не важно.

    Дальше я просто пробовал запаковывать тем же обхектом, который изначально связывается с оригинальным cab'ом.

    В общем, кто может знает, в чем у них разница? Почему cab который делает VS, устанавливается, а мой нет? Разницы, кроме размера, я у них не нашел. Cab студией НЕ подписывается.
    // Когда у оппонента кончаются аргументы, он начинает уточнять национальность.
      Может, спецы по моблиьникам вас спасут :)
      ... А сегодня что для завтра сделал я?

      Brainbench Transcript ID#: 7848137
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script Execution time: 0,0736 ]   [ 18 queries used ]   [ Generated: 30.03.20, 23:27 GMT ]