有没有办法将Windows桌面应用程序转换为Universal UWP和Vice Versa?

时间:2017-06-16 02:59:51

标签: windows uwp

在Visual Studio中,我试图决定应该从哪个类型的应用程序开始。我希望尽可能多地使用它。

如果我制作Windows桌面应用程序(.NET / WPF),我可以将其转换为UWP,但它只针对桌面应用程序,这在设备方面毫无意义。

但是,如果我制作UWP,它可以与微软设备配合使用,但不适用于运行早于Windows 10的Windows的设备。很多人仍然使用旧版本的Windows,我宁愿制作Windows桌面应用程序而非限制用于特定版本的Windows。

能够让它在Android等其他设备上运行也很酷。

问题:有没有办法将桌面应用程序转换为通用UWP(有或没有代码)?有没有办法将通用UWP转换为桌面应用程序(或使其在较旧的Windows机器上运行)?如果没有,那么最好的应用类型是什么?为什么?

另外,我应该使用不同的应用程序类型,而不是我想到的吗?

注意:Microsoft Project Centennial将桌面应用程序转换为UWP,但它们仅适用于台式机。

3 个答案:

答案 0 :(得分:1)

您已经自己回答了大部分问题。您有以下选项(考虑到您希望在提及WPF时继续使用.NET / XAML技能组,并且没有考虑Web替代方案):

  • 在WPF中编写桌面应用程序:您希望支持Windows 7或需要UWP中目前尚不可用的功能(某些API,沙盒UWP,...)。正如您所提到的,您可以使用桌面桥将应用程序带到Windows 10商店,以及不在移动设备,HoloLens,Xbox(截至今天)上运行的缺点。然后,WPF也不会在这些平台上运行。
  • 在UWP中从头开始编写应用程序:在所有可用平台上运行Windows 10。是的,您将让Windows 7用户处于寒冷状态,但不是Windows 7已经在extended support block中,因此人们将不得不在某些时候进行升级。
  • 使用Xamarin.Forms从头开始编写应用程序,创建一个在Windows 7(WPF),UWP,Android和iOS上运行的应用程序。请注意,这是一种稍微不同的XAML方言,但是XAML Standard正在努力在将来统一方言。

更多的工作是与.NET Standard或PCL库共享大部分代码,并在其上编写多个本机UI(可以使用Xamarin完成)。

如果您正在寻找长期支持,请选择UWP(Windows的前进方式)或Xamarin.Forms。

答案 1 :(得分:0)

如果我是你,我会去UWP并使用Xamarin表格。

使用Xamarin,您可以编写一个UWP应用程序并部署到Windows,Android和iOS。

答案 2 :(得分:0)

尝试微软的Desktop Bridge tool for UWP。使用Desktop Bridge,您可以逐步将代码迁移到通用Windows平台(UWP)以访问每个Windows 10设备,包括电话,Xbox One和HoloLens

使用桌面桥接工具,您可以

  • 将MSI转换为APPX包
  • 将您的桌面应用程序(转换为APPX包后)上传到商店
  • 利用UWP功能,如动态磁贴,推送通知等等)

而且,对于Android和iOS应用程序,请尝试Xamarin。 UWP项目无法转换为xamarin项目。你要编写单独的项目。我建议您尝试Xamarin.Forms,这样您就可以使用共享代码来推广UWP,Android和iOS应用。