当前的 Windows Phone 8.1 应用程序是不是可以在没有任何代码修改的情况下在 Windows 10 移动设备上运行?

Posted

技术标签:

【中文标题】当前的 Windows Phone 8.1 应用程序是不是可以在没有任何代码修改的情况下在 Windows 10 移动设备上运行?【英文标题】:Will current Windows Phone 8.1 apps run on Windows 10 Mobile devices whitout any code modifications?当前的 Windows Phone 8.1 应用程序是否可以在没有任何代码修改的情况下在 Windows 10 移动设备上运行? 【发布时间】:2017-05-02 16:51:51 【问题描述】:

目前我在 Windows 10 移动设备上运行 wp8 应用程序,但我得到了一些意想不到的结果,特别是与照片相关的任务。

这是不好的地方:

//Initializations for photo chooser task 
PhotoChooserTask photoChooserTask = new PhotoChooserTask(); 
photoChooserTask.Completed += new EventHandler<PhotoResult>(photoChooserTask_Completed);
...

//Starting the photo chooser 
photoChooserTask.Show();
...

//Getting result from photo chooser 
void photoChooserTask_Completed(object sender, PhotoResult e)

   String photoPath = e.OriginalFileName;

这在安装在 windows phone 8.1 设备上的 wp8 应用程序中运行良好,总是得到类似的东西:

photoPath = "C:\Data\Users\Public\Pictures\Camera Roll\WP_20170504_002.jpg"

但在 Windows 10 设备上安装的同一个 wp8 应用程序中出现意外行为,有时会出现以下情况:

photoPath = "C:\Data\Users\Public\Pictures\Camera Roll\WP_20170504_002.jpg"

但其他时候我在同一设备中得到以下信息:

photoPath = "C:\Data\Users\DefApps\AppData\82D0A9BD-6D54-4321-880B-445007A2A1B4\local\PlatformData\PhotoChooser-b001485c-f41b-4676-b655-7aacee3d8267.jpg"
//This is not the real name of the saved photo, then is going to be a big problem if you want to save the name into a database an later use it to read the photo again.

我正在以下设备中对此进行测试: 诺基亚 Lumia 520(windows phone 8.1 操作系统) Microsoft Lumia 550(Windows 10 移动操作系统)

【问题讨论】:

这里也一样。但是您的问题太广泛了,无法得到任何好的答案。或者只是简单地回答标题的“不”。我建议发布适用于 8.1 和 10 故障的与照片相关的代码。 这是题外话“太宽泛”。发布您遇到的真正问题并使用您遇到的异常编写 sn-ps 代码 好的,阅读编辑后的问题 【参考方案1】:

我认为这是设计使然。在Data for Windows Phone 8中,我们可以发现PlatformData本地文件夹中的特殊文件夹之一:

此文件夹是在您的应用使用照片选择器任务时创建的。如需更多信息,请参阅How to use the photo chooser task for Windows Phone 8

在How to use the photo chooser task for Windows Phone 8 中,它声明

如果面向 Windows Phone OS 7.1 的应用部署到运行 Windows Phone 8 的手机并且该应用使用照片选择器任务,系统将在应用的隔离存储的顶层创建一个名为“PlatformData”的目录。

在您的场景中发生的情况类似,当您的 Windows Phone 8 应用部署到 Windows 10 Mobile 时,系统会自动创建“PlatformData”文件夹。

由于这是由系统控制的,恐怕没有解决方法。如果您的应用是 Windows Phone Silverlight 8.1 应用,我建议使用 file picker 而不是 照片选择器任务。或者,您可以将您的应用程序移植到 Windows 10,例如 Move from Windows Phone Silverlight to UWP。

【讨论】:

我已经使用与此类似的解决方案解决了我的问题:***.com/a/6032964/1491726 @adrian4aes 很高兴知道您已经解决了这个问题。 ;)

以上是关于当前的 Windows Phone 8.1 应用程序是不是可以在没有任何代码修改的情况下在 Windows 10 移动设备上运行?的主要内容,如果未能解决你的问题,请参考以下文章

xml 适用于Windows 8.1和Windows Phone 8.1应用程序的扩展器控件演示。

如何以编程方式检测Windows Phone 8.1操作系统版本?

xml 适用于Windows 8.1和Windows Phone 8.1应用程序的扩展器控件的模板。

如何将 Windows 商店中的 Windows Phone 应用程序(8.1 XAML)迁移到 8.1 Silverlight?

csharp 在Windows 8.1和Windows Phone 8.1应用程序中运行的Expander控件的代码隐藏。

Windows Phone 8.0 DLL 是不是与 Windows Phone 8.1 应用程序兼容?