При изменении пути изображения с "включенного в приложение" на внешний источник оно не работает. Зачем?

Мы работаем над приложением, которое использует json, чтобы сообщить приложению, каковы пути к изображениям. Существует средство обновления фона, которое запускается таким образом, что файл json загружается, а затем из этого нового файла json мы получаем новые пути к изображениям.

Поток приложения таков:

  1. Запустите приложение, проверьте статус обновления.
  2. Если приложение требует обновления, перейдите на страницу обновления.
  3. Загрузите новые ресурсы в каталог.
  4. Измените имя исходного каталога, в котором есть исходные ресурсы, на другое.
  5. Измените имя нового каталога с новыми активами на имя исходного каталога.
  6. После завершения загрузите основное приложение.

По какой-то причине ни одно из изображений не появляется вообще. Я пытался использовать разные префиксы пути, такие как ms-appx:/// а также ../, Я даже попытался установить путь непосредственно в xaml вместо использования привязки данных. Есть что-то, чего мне не хватает?

Изменить: Больше информации - я поместил событие "ImageFailed" на объект изображения в xaml. Каждый раз происходит сбой с аргументом "e" как "E_NETWORK_ERROR". Исследование этой ошибки не очень помогает.

Изменить 2: Если я введу в EXACT путь, включая букву диска и все, это работает. Я не понимаю почему.

Спасибо Зак

1 ответ

Хорошо... Потребовалось много копать, но, видимо, для универсальных приложений Windows 8.1 (я не знаю, о других приложениях Windows) использование ms-appx:/// специально для файлов внутри пакета приложения, тогда как использование ms-appdata:/// предназначен для файлов в каталоге приложения, таких как папки данных "local", "temp" и "roaming".

Исправление было изменить все ms-appx:/// в ms-appdata///Local/ в JSON, потому что эти файлы загружаются в локальную папку приложения.

Надеюсь, это поможет другим не копать так глубоко, как я.

Zach

Другие вопросы по тегам