我正在开发一个Windows Phone 7应用程序,我将用bing地图显示ATM的位置。
我有一个带地址和gps坐标的xml文件。但是如何从visual studio将此文件添加到我的程序中?如果我将BuildAction设置为Content并将Copy复制到输出目录,则始终为Copy。该文件仍然不在IsolatedStorage中。我是否必须构建一种从Web下载信息的机制?或者还有另一种方式吗?
答案 0 :(得分:4)
在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
答案 1 :(得分:2)
您无法在设计时直接将文件传递到隔离存储。仅在应用程序运行时。
我仍然建议您通过网络服务将文件传递给应用程序。主要是因为如果最终需要更改XML的内容,则需要更新应用程序。
我要做的只是创建一个WCF服务,它将通过一个简单的HTTP请求返回序列化数据(或现有的XML)。
答案 2 :(得分:1)
“Mango”SDK附带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
),用于指定要备份/恢复的子目录。