如何将Windows Phone 8的应用移植到Windows Phone 8.1?

3

我一直在开发一个 Windows Phone 8 应用,现在想要将它改为 Windows Phone 8.1。我该怎么做?

我应该创建一个新的 Windows Phone 8.1 应用程序,并将所有现有文件复制到其中吗?还是有自动升级现有解决方案到 8.1 的方法?


1
当您在VS2013中打开应用程序并右键单击项目时,您应该会看到一个选项重新定位到Windows Phone 8.1。看看这是否有帮助。不要忘记备份-这是单向的。 - Romasz
看起来已经解决了!谢谢。 - DaveDev
1
“重新定向到Windows Phone 8.1”将使Silverlight 8.1应用程序不再是WinRT 8.1应用程序。 - Faisal
1个回答

9
有两种方法可以做到这一点:
  • 像在注释中一样 - 右键单击您的项目,您应该会看到 Retarget to Windows Phone 8.1
  • 或者您可以打开您的项目的 Properties 窗口,在下拉框 Target Windows Phone OS version 中选择 Windows Phone 8.1
在任何情况下,VS 都应该询问您是否确定要这样做 - 这是一个单向操作,因此最好备份您的解决方案。由于 WP8.1 具有向后兼容性,在大多数情况下不应该有任何问题。
对于关注者的一些澄清:
由于 WP8.0 应用程序是Silverlight,重定位后它仍然是Silverlight应用程序,但具有WP8.1的一些新功能和增强功能。
如果你想重定向到 WP8.1 Runtime,那么它是完全不同的事情 - 它是一种不同类型的应用程序,不同的API等等。你将不得不手动移植它。请注意,并非所有来自 WP8.0 的功能在 WP8.1 Runtime 中都可用 - 这是一篇关于此的好文章

感谢您对此进行了额外的澄清。这确实帮助我更好地理解了我所面临的问题。昨天我花了很多时间苦思冥想,试图理解为什么我的应用程序虽然看起来是“Windows Phone 8.1”,但具有不同的属性和行为方式。看来微软在这方面真的失误了。 - DaveDev
1
@DaveDev 很高兴能帮到你。是的,我也花了一些时间才理解发生了什么。另外需要补充的是 - 当你移植到WP8.1 Runtime时,还要注意不同的应用程序生命周期,有一些陷阱,其中我最喜欢的是 OnNavigatedTo() 在恢复事件后不会被调用。此外,当你调试挂起/恢复时,除非你调用它,否则不会触发。 - Romasz
只是强调@Romasz所说的:当在调试器下时,WP不会像应该一样触发“挂起”事件(例如,当您通过按开始按钮、返回按钮(从应用程序第一个屏幕)或通过任务切换器导航离开应用程序时)。相反,应用程序将从屏幕上消失,但仍然运行并处于活动状态,就好像它仍然在前台一样。为了模拟调试器下应用程序的正常生命周期,您需要在VS中打开工具栏“调试位置”,然后单击那里的“挂起”按钮。当您在没有调试器的情况下运行应用程序时,“挂起”事件将如承诺的一样在应用程序离开屏幕时触发。有点棘手。 - Dimitry K
1
@DimitryK 只是在参考您所说的内容(https://dev59.com/JWAf5IYBdhLWcg3w9Wqu#24103734)。 - Romasz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接