我爱编程WPFUWP开发

如何使用Visual Studio将传统桌面程序转制为UWP程序

2018-06-03  本文已影响25人  三梦哥
UWP Platform

Desktop Bridge是内置于平台中的基础架构,借助它,可以使用现代化的 Windows 应用包来分发Windows Forms、WPF 或 Win32 桌面应用或游戏。

优点

通过将Windows 桌面程序转制为Windows 10 UWP应用包有下面的优点:

环境需求

Desktop Bridge是在 Windows 10 版本 1607 中引入,它仅可用于面向 Windows 10 周年更新(10.0;版本 14393)Visual Studio 更高版本的项目中。

准备

开发者在将应用打包为UWP引用之前需要清理下面相关问题的代码:

开始

这里以一个简单的WPF Helllo World程序来示例。
运行环境:

  1. 新建WPF程序。
    注意,这里需要将.NET Framework的版本选择为4.6.1以上,如果系统中没有4.6.1以上的版本,通过Visual Studio Installer来以组件的形式安装高版本的.NET Framework
    新建WPF程序
  2. 填充代码
    MainWindow.xaml文件中填写一个Button以及其点击的事件。
<Window x:Class="HelloWorldDemo.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:HelloWorldDemo"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <Button HorizontalAlignment="Center" 
                VerticalAlignment="Center" 
                Content="Click Me" 
                Click="Button_Click"/>
    </Grid>
</Window>

MainWindow.xaml.cs中填写View视图中Button的逻辑事件,这里,我们简单地将这个Button点击事件处理为弹出一个Hello World!的消息框。

using System.Windows;

namespace HelloWorldDemo
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            MessageBox.Show("Hello World!");
        }
    }
}

  1. 打包前测试运行
    在打包为UWP程序之前,我们执行上面新建的WPF程序,效果如图。
    测试运行
    正如我们所写的那样,点击这个Button,能弹出Hello World!的消息框了。
  2. 新建UWP打包项目
    在当前的解决方案上右键Add->New Project,然后Windows Universal内容中选择Windows Application Packaging Project
    [站外图片上传中...(image-215821-1528040900571)]
    新建打包项目
    继续选择Target versionMinimum version,这里以最低15063,最高17143为例子,如果选择了系统中没有的Windows SDK的,会提示下载SDK
    SDK选择
  3. 添加引用
    在新建的UWP打包项目的Applications右键来添加同解决方案下WPF项目的引用。
    添加引用
    添加引用
  4. 设置入口点
    Applicatons下刚添加的引用设置为入口点。
    [站外图片上传中...(image-6444f5-1528040900571)]
  5. 重新构建
    解决方案右键Rebuild启动重新构建,一般情况下没有出错即可。
  6. 创建App包
    打包程序右键,Store->Create App Packages...,在弹出的对话框中选择打包为Sideloading 旁加载
    [站外图片上传中...(image-2a47ef-1528040900571)]
    旁加载
    然后,等待打包完成。
  7. UWP测试运行
    在项目文件夹中AppPackagesWapProjTemplate_1.0.0.0_Debug_Test中可以看到,其中有cer证书文件,appxbundleUWP安装程序文件,Add-AppDevPackage.ps1PowerShell安装批处理,以及其他文件。
    打包

这里,右键这里PowerShell批处理文件,选择使用PowerShell 运行,安装过程中提示需要管理员权限,全部Y即可。

打包

安装完成后即可在开始菜单看到刚打包的UWP程序,点击运行。


PowerShell 安装

执行效果和之前运行的一样。

参考文献:

上一篇 下一篇

猜你喜欢

热点阅读