如何从Windows Phone 7模拟器中获取数据

我有一个WP7的unit testing框架,它可以在手机上运行。 结果很难读,因此我将它们写入XDocument。

我的问题是,如何将这个XML文件从手机中取出并放到我可以实际分析结果的桌面上?

到目前为止,我所做的是在创建摘要xml之后放置一个Debugger.Break()行。 然后我可以将xml复制/粘贴到VS中,或者在调试器中检查它。 但问题是,如果你还没有连接调试器(当许多ExpectedException测试时很好)Debugger.Attach()似乎不起作用,那么手动将VS附加到模拟器进程似乎什么都不做。

我尝试使用一些额外的命令行参数运行模拟器,所以我可以尝试看看我是否可以使用我的实际硬盘驱动器,因为它是自己的磁盘,但我似乎无法让它工作…

PS打开一个新的进程(如网络服务器)来监听这些数据可能是不合理的。 我知道怎么做,我宁愿不要。

那你怎么能从这些手机上取下东西?

看看Justin Angel关于模拟器自动化的这篇文章 。
它包括有关如何从/向仿真器/设备隔离存储远程读取和写入文件的详细信息。

正如您所指出的那样,另一种选择是让applciation将结果发送到[本地] Web服务器。

Justin Angel的文章真的很棒,但不幸的是他的基于文件的解决方案不适用于CoreCon API的最终RTM版本。 Microsoft已经从原生conman层中删除了该function。

我和你一样处于同样的境地,并设想了各种方法从设备中获取数据,但最终只有一件事似乎有效:正如你自己建议的那样,将数据传递给外部Web服务。

这个解决方案不太理想,不仅因为它需要一些努力,还因为一些警告:

  • 您的应用必须被授予ID_CAP_NETWORKINGfunction
  • Application_Closing事件中似乎不允许网络流量,也可能在其他地方也不允许

从好的方面来说,我发现手机的网络请求,无论是硬件还是模拟器,都非常快,因此这种方法非常有效(我们的应用程序是针对WP7的EQATEC Profiler )。