Добавление файлов в изолированное хранилище WP7 из Visual Studio? - PullRequest
4 голосов
/ 11 сентября 2010

Я работаю над приложением для Windows Phone 7, в котором я собираюсь показать банкомат рядом с вашим местоположением с помощью карт bing.

У меня есть xml-файл с адресами и GPS-координатами. Но как мне добавить этот файл в мою программу из Visual Studio? Если я установлю BuildAction на Content, а Copy to output directory - всегда копировать Файл все еще не в изолированном хранилище. Нужно ли создавать механизм для загрузки информации из Интернета? Или есть другой способ?

Ответы [ 3 ]

4 голосов
/ 11 сентября 2010

Файлы, перечисленные как содержимое в проекте Visual Studio, копируются в сгенерированный файл XAP (который аналогичен ZIP-файлу).Они не копируются в изолированное хранилище.

В случае файла XML вы можете вызвать XmlReader.Create , указав путь к файлу в качестве аргумента, следующим образом:

using (XmlReader reader = XmlReader.Create("path/to/file.xml"))
{
    // read XML file here
}

Или вы также можете вызвать Application.GetResourceStream и использовать свойство Stream возвращенного объекта StreamResourceInfo :

StreamResourceInfo sri = Application.GetResourceStream(
    new Uri("path/to/file.xml", UriKind.Relative));
// read XML file here from sri.Stream, e.g. using a StreamReader object
2 голосов
/ 13 сентября 2010

Вы не можете напрямую передавать файлы в изолированное хранилище во время разработки.Только когда приложение запущено.

Я бы по-прежнему рекомендовал передать файл приложению через веб-сервис.Главным образом потому, что если в конечном итоге вам потребуется изменить содержимое XML, вам необходимо обновить приложение.

Я бы просто создал службу WCF, которая будет возвращать сериализованные данные (или существующий XML).через простой HTTP-запрос.

1 голос
/ 10 июля 2011

SDK "Mango" поставляется с ISETool , который может делать и восстанавливать моментальные снимки изолированного хранилища приложения в / из локального каталога:

# Copy data from IS to directory
ISETool.exe ts xd <PRODUCT-ID> "C:\TempDirectory\IsolatedStore"

# Copy data from IS to directory
ISETool.exe rs xd <PRODUCT-ID> "C:\TempDirectory\IsolatedStore"

Если вы не хотите перезаписывать весь IS, инструмент поддерживает опцию (device-folder) для указания подкаталога для резервного копирования / восстановления.

...