Изменение содержимого XAP, переупаковка и развертывание на Windows Phone 8

Мне нужно иметь возможность извлекать содержимое из xap-файла WP8 (путем переименования в .zip и разархивирования), изменять содержимое одного из моих текстовых файлов, переупаковывать его (используя отправку в сжатую (заархивированную) папку, а затем переименовывать в xap) и развернуть его с помощью XapDeploy.exe

Все работает нормально, кроме этапа развертывания. XapDeploy сообщает о том, что файл XAP недействителен.

Есть ли еще один шаг, который мне нужно сделать?

Это вообще возможно?

Причина, по которой это делается вне процесса сборки, состоит в том, чтобы позволить клиентам, у которых нет исходного кода, изменить этот единственный текстовый файл в соответствии со своими потребностями, прежде чем развертывать его для своих сотрудников.


person Julian Mountford    schedule 25.01.2013    source источник


Ответы (2)


Этот процесс отлично работает для меня на WP8 с использованием FIle Explorer.

Вот две вещи, которые могли пойти не так:

  1. Вы пытаетесь использовать производственные XAP из службы приложений Windows Phone? Они подписаны с помощью WmPrHeader и больше не могут быть изменены без нарушения этой подписи. Убедитесь, что вы используете XAP, сгенерированные из VS2012.

  2. Ваш формат ZIP не соответствует формату XAP ZIP. Возможно, то, как вы добавляете файл в ZIP и сохраняете новый ZIP, изменяет алгоритм сжатия на нечто, не поддерживаемое WP8. Убедитесь, что вы используете тот же алгоритм сжатия с теми же параметрами.

person JustinAngel    schedule 25.01.2013
comment
Спасибо за Ваш ответ. В ответ на ваши вопросы. 1. Я не использую производственные XAP из службы приложений Windows Phone. XAP, который я использую, является результатом сборки моего проекта в VS2012 Express для Windows Phone 8. Вопрос 2. Я сжимаю папку, щелкнув правой кнопкой мыши и выбрав «Отправить в сжатую заархивированную папку». Какая у вас версия VS2012. Как вы думаете, мне может понадобиться VS2012 Pro вместо Express? - person Julian Mountford; 28.01.2013
comment
Да, я относительно уверен, что сжатие папок с помощью встроенной функции ZIP не будет соответствовать спецификации ZIP, необходимой для XAP. Используйте какой-нибудь ZIP-инструмент, чтобы выяснить эти спецификации, а затем используйте стороннюю библиотеку/инструмент, чтобы сопоставить их. - person JustinAngel; 28.01.2013
comment
Большое спасибо. Если я использую WinZip для редактирования содержимого архива, он работает. - person Julian Mountford; 29.01.2013

Silverlight поддерживает только часть методов сжатия. Вы можете использовать infoZip версии 2.32 для повторной упаковки. Обратите внимание, архивы info zip версии 3.0 (текущая) несовместимы. Подсказка о совместимости PKZIP есть в разделе информации об ошибках zip.

person dirkj    schedule 27.09.2013