На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ElcnU
  
> Как сделать 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 студией НЕ подписывается.
      Ну как бы размер имеет значение.
      Распакуй оба файла и сравни директории по содержимому - это ответ на твой вопрос.
        Мож цифровых подписей хочет?
          Как правило нет там ничего.

          А ты еще попробуй утилиткой CabInstaller поставить каб после сервера
            Цитата Nadz Goldman @
            Распакуй оба файла и сравни директории по содержимому - это ответ на твой вопрос.

            Абсолютно идентичны.


            Цитата Qraizer @
            Мож цифровых подписей хочет?

            Нет подписей, ни там ни там. Если только студия в тихаря что-то где-то подписывает.


            Цитата Nadz Goldman @
            А ты еще попробуй утилиткой CabInstaller поставить каб после сервера

            Поищу, что это попробую, как руки дойдут... К сожалению, пришлось делать обходной вариант. Но решение этого все равно хотелось бы...
              Цитата Felan @
              Если только студия в тихаря что-то где-то подписывает.
              Вот я об этом. Вполне может. По крайней мере, когда баловался CAB Manager-ом под Win98, там была фича подписывания CAB-а с обязательной проверкой перед инсталляцией.
                Вроде как студия создает cab при помощи утилитки:
                c:\Program Files (x86)\Microsoft Visual Studio 9.0\smartdevices\sdk\sdktools\cabwiz.exe

                Ничего похожего на подписывание там вроде нет.
                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                0 пользователей:


                Рейтинг@Mail.ru
                [ Script execution time: 0,0216 ]   [ 15 queries used ]   [ Generated: 2.05.24, 10:23 GMT ]