我正在使用Windows Phone 7应用程序,在那里我将使用bing地图显示ATM的位置。将文件从Visual Studio添加到WP7隔离存储?
我有一个地址和gps坐标的xml文件。但是,如何将这个文件从Visual Studio添加到我的程序中?如果我将BuildAction设置为“内容”并将“复制到输出目录”设置为“始终复制”该文件仍然不在IsolatedStorage中。我必须建立一个机制来从网上下载信息吗?还是有另一种方式?
我正在使用Windows Phone 7应用程序,在那里我将使用bing地图显示ATM的位置。将文件从Visual Studio添加到WP7隔离存储?
我有一个地址和gps坐标的xml文件。但是,如何将这个文件从Visual Studio添加到我的程序中?如果我将BuildAction设置为“内容”并将“复制到输出目录”设置为“始终复制”该文件仍然不在IsolatedStorage中。我必须建立一个机制来从网上下载信息吗?还是有另一种方式?
您不能在设计时直接将文件传递到独立存储。只有当应用程序正在运行时。
我仍然建议通过Web服务将文件传递给应用程序。主要是因为如果最终您需要更改XML的内容,则需要更新该应用程序。
我会做的只是创建一个WCF服务,该服务将通过简单的HTTP请求返回序列化的数据(或现有的XML)。
作为Visual Studio项目中的内容列出的文件被复制到生成的XAP文件(类似于ZIP文件)。它们不会复制到独立存储。
在一个XML文件的情况下,你可以调用XmlReader.Create与文件路径作为参数,如下所示:
using (XmlReader reader = XmlReader.Create("path/to/file.xml"))
{
// read XML file here
}
或者,您也可以拨打Application.GetResourceStream和使用返回StreamResourceInfo的Stream财产object:
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
如果文件是来自引用项目或程序集的内容,该怎么办?我找不到使用Application.GetResourceStream或相对Pack URI格式访问它的方法... – 2010-10-18 02:47:24
的“芒果” 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
)。
混合方法将是最好的。如果你去网络,只要没有网络,应用程序根本不会做任何事情...... – 2010-09-12 21:43:28
这真的取决于应用程序的功能。在这种情况下,应用程序仍然需要Bing Maps。因此,如果没有活跃的互联网连接,它将无法正常工作。因此,这里仅限于网络的方法是适当的。 – 2010-09-12 22:02:28
我下载列表的问题是它目前有940kb。它可能会随着时间的推移而增长。这意味着您第一次运行应用程序时,它会下载相当大的数据。所以我想我会在应用程序中存储一个初始列表,然后下载更新。客户可能会喜欢这一点。 – 2010-09-13 08:05:10