При изменении пути изображения с "включенного в приложение" на внешний источник оно не работает. Зачем?
Мы работаем над приложением, которое использует json, чтобы сообщить приложению, каковы пути к изображениям. Существует средство обновления фона, которое запускается таким образом, что файл json загружается, а затем из этого нового файла json мы получаем новые пути к изображениям.
Поток приложения таков:
- Запустите приложение, проверьте статус обновления.
- Если приложение требует обновления, перейдите на страницу обновления.
- Загрузите новые ресурсы в каталог.
- Измените имя исходного каталога, в котором есть исходные ресурсы, на другое.
- Измените имя нового каталога с новыми активами на имя исходного каталога.
- После завершения загрузите основное приложение.
По какой-то причине ни одно из изображений не появляется вообще. Я пытался использовать разные префиксы пути, такие как 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