<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=349250&amp;view=findpost&amp;p=3067199</guid>
        <pubDate>Thu, 26 Jan 2012 05:33:20 +0000</pubDate>
        <title>Как сделать cab файл, который работает на мобильных устройствах?</title>
        <link>https://forum.sources.ru/index.php?showtopic=349250&amp;view=findpost&amp;p=3067199</link>
        <description><![CDATA[Alexus: Может, спецы по моблиьникам вас спасут :)]]></description>
        <author>Alexus</author>
        <category>.NET: Compact Framework</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=349250&amp;view=findpost&amp;p=3062146</guid>
        <pubDate>Wed, 18 Jan 2012 16:21:29 +0000</pubDate>
        <title>Как сделать cab файл, который работает на мобильных устройствах?</title>
        <link>https://forum.sources.ru/index.php?showtopic=349250&amp;view=findpost&amp;p=3062146</link>
        <description><![CDATA[Felan: Пишу сюда, потому как работа вся происходит на сервере. Суть в том, что есть некий cab файл, который делает студия (2008), для установки на устройстве. Все отлично работает. Cab ставится, и все запускается. Но.<br>
<br>
Необходимо при скачивании этого cab файла с сервера изменить в нем содержание одного XML файла. Для этого пытаюсь использовать библиотеку Microsoft.Deployment.Compression.Cab. Аналогично тому, как описано <a class='tag-url' href='http://codesupport.wordpress.com/tag/microsoft-deployment-compression-dll/' target='_blank'>тут</a> например.<br>
<br>
Т.е. сервер получает изначальный cab файл, распаковывает его, изменяет содержимое нужного файла, запаковывает распакованные файлы в cab обратно. Но этот новый cab не устанавливается на устройстве. И имеер меньший размер, чем оригинальный. Ну это ладно, допустим разная степерь сжатия. При установке на устройстве говорит &quot;Installation of *.cab was unsuccessful&quot;. И все.<br>
<br>
Пробовал смотреть в папке &quot;Application data/Volatie&quot;, ничего там нет. Вообще ничего, пустая.<br>
Пробовал запаковывать обратно тем же объектом, которым распаковывал (сначала делал разные).<br>
Запаковываю папку, в которую распаковывается. По файлам пробовать не стал, потому как внутри все равно папка первращается в список файлов.<br>
<br>
В чем может быть разница между тем cab файлом который делаю я и тем, который делает студия???<br>
<br>
Код примерно такой:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var unpackDir = Unpack(sessionFilename);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ProcessDefaultSettings(Path.Combine(unpackDir, &quot;DefaultSettings.xml&quot;));</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var c = new CabInfo(sessionFilename);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;c.Pack(unpackDir);</div><div class="code_line">// &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var c2 = new CabInfo(Path.GetDirectoryName(sessionFilename) + &quot;/NewCab.cab&quot;);</div><div class="code_line">// &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;c2.Pack(unpackDir);</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
SessionFile это пусть к оригинальному cab файлу.<br>
Фнкция Unpack распаковывает его в unpackDir.<br>
ProcessDefaultSettings изменяет нужный Xml. Правда это тестовый варинат, и файл насамом деле там не так называется, студия его обзывает по своему. Но это назнвания можно в _setup.xml найти, котоырй внутри cab находится. Вобщем это не важно.<br>
<br>
Дальше я просто пробовал запаковывать тем же обхектом, который изначально связывается с оригинальным cab&#39;ом.<br>
<br>
В общем, кто может знает, в чем у них разница? Почему cab который делает VS, устанавливается, а мой нет? Разницы, кроме размера, я у них не нашел. Cab студией НЕ подписывается.]]></description>
        <author>Felan</author>
        <category>.NET: Compact Framework</category>
      </item>
	
      </channel>
      </rss>
	