首页 > 编程语言 >第一个WinUI程序

第一个WinUI程序

时间:2023-02-25 22:25:47浏览次数:50  
标签:文件 第一个 Windows 程序 WinUI x64 VS 模板

概述

WinUI 是Windows上最新的UI开发框架,属于 Windows App SDK 的一部分。

对于开发者需要知道的是:

  • 开发工具为 Visual Studio 2019 或 Visual Studio 2022。
  • 支持使用 C++ 或 C# 开发。
  • Windows App SDK 要求系统版本在 Windows 10 1809 或以上,也就是2018年11月之后的Win10、Win11系统。
  • 支持生成传统的 exe 文件和新的 MSIX 文件。什么是MSIX?
  • 程序依赖 Windows App Runtime 运行时,当然也可以选择在打包时将相应的文件一并打包。

安装开发环境

  1. 安装 VS 组件
    对于C++开发者,安装VS时需要勾选Windows 应用 SDK C++ 模板,这样才能在VS中创建WinUI项目

对于C#开发者,安装VS时需要勾选Windows 应用 SDK C# 模板,这样才能在VS中创建WinUI项目

  1. 安装 Visual Studio 扩展 https://learn.microsoft.com/zh-cn/windows/apps/windows-app-sdk/downloads

第一个项目

打开VS,选择 WinUI 项目,可以看到有两个工程模板

第三个模板中强调的是"使用 Windows 应用程序打包项目打包",这个模板会产生两个项目,其中一个只是用来打包用。

这是一个过时的模板,我们不需要它。所以选择第一个工程模板即可。

建立项目后直接按F5键启动调试,程序就可以跑起来了。此时可以发现运行的文件位置在
bin\x64\Debug\net6.0-windows10.0.19041.0\win10-x64\AppX\目录,但是当我尝试去双击运行时,程序没有如期的显示,因为项目默认是一个所谓的打包应用,不能像传统的exe那样直接运行。
要创建一个未打包应用(就是传统的exe),那么需要手动编辑工程文件(.csproj或.vcxproj),在<PropertyGroup>下添加

<WindowsPackageType>None</WindowsPackageType>

然后删除项目目录下的package.appxmanifest文件即可。
这样我们就回归到了传统的开发方式,文件会生成在bin\x64\Debug\net6.0-windows10.0.19041.0\win10-x64这样的目录下。

但是发现其中携带了VC运行库和.Net运行时文件,为了移除.Net运行时文件,手动编辑文件Properties\PublishProfiles下对应的.pubxml文件,比如:

<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <PublishProtocol>FileSystem</PublishProtocol>
    <Platform>x64</Platform>
    <RuntimeIdentifier>win10-x64</RuntimeIdentifier>
    <PublishDir>bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish\</PublishDir>
	<!-- 包含 .NET 运行时 -->
    <SelfContained>false</SelfContained>
    <PublishSingleFile>False</PublishSingleFile>
    <PublishReadyToRun Condition="'$(Configuration)' == 'Debug'">False</PublishReadyToRun>
    <PublishReadyToRun Condition="'$(Configuration)' != 'Debug'">True</PublishReadyToRun>
   <!-- 
    See https://github.com/microsoft/CsWinRT/issues/373
    <PublishTrimmed>True</PublishTrimmed>
    -->
  </PropertyGroup>
</Project>

将其中的<SelfContained>标签改为false即可,最后发布的文件就很少了

这样发布的客户端优点是文件少,但要求目标计算机上安装了 .Net 和 Windows App 运行库。

相关阅读

创建第一个 WinUI 3(Windows 应用 SDK)项目
打包应用的优点和缺点
Packaged, Unpackaged and Self-Contained WinUI 3 Apps with the Windows App Sdk
WinUI 3 踩坑记:从创建项目到发布

标签:文件,第一个,Windows,程序,WinUI,x64,VS,模板
From: https://www.cnblogs.com/cyds/p/17155572.html

相关文章

  • 《程序是怎样跑起来的》第八章读后感
    在第八章中主要讲述了源文件与可执行文件及其转换,内容有下:计算机只能运行本地代码,程序员键入的源代码,计算机无法直接识别运行。编译器负责转换源代码,每个编写源代码的编程......
  • 《程序是如何跑起来的》第七章读后感
    在第七章主要讲述了关于程序的运营环境,内容有下:操作系统和硬件决定了程序的运行环境。同一类型的硬件可以选择安装多种操作系统。例如,同样的在兼容机一个中,既可以安装窗......
  • 《程序是如何跑起来的》第六章读后感
    第六章主要讲述关于文件的压缩,内容如下:文件是将数据存储在磁盘等存储媒介中的一种形式。程序文件中存储数据的单位是字节。文件的大小之所以用××知识库、××兆字节等来......
  • #yyds干货盘点# LeetCode面试题:找出字符串中第一个匹配项的下标
    1.简述:给你两个字符串 haystack和needle,请你在haystack字符串中找出needle字符串的第一个匹配项的下标(下标从0开始)。如果 needle不是haystack的一部分,则返回......
  • #yyds干货盘点# LeetCode程序员面试金典:整数的英语表示
    题目:给定一个整数,打印该整数的英文描述。示例1:输入:123输出:"OneHundredTwentyThree"示例2:输入:12345输出:"TwelveThousandThreeHundredFortyFive"示例3:......
  • #yyds干货盘点# LeetCode程序员面试金典:运算
    题目:请实现整数数字的乘法、减法和除法运算,运算结果均为整数数字,程序中只允许使用加法运算符和逻辑运算符,允许程序中出现正负常数,不允许使用位运算。你的实现应该支持如下操......
  • 【C++小程序】《我要抽签》b1.0做好了~
    也许是的,得横空出世了如你所见这款基于\(C++\)能模仿Mrs.Yao抽签系统的cpp终于做完了啦~初期功能很少。\(BUG\)极多。所以为了您的体验:)请遵守格式代码:#includ......
  • 《程序是怎样跑起来的》第八章
        这章讲了从源代码到可执行代码,CPU能运行的只是转化成本地代码的程序内容,用任何编程语言编写的源代码最后都要翻译成本地代码。    用某种编程语言编写......
  • 《程序是如何跑起来的》第五章读后感
    在第五章中主要讲述了内存和磁盘的关系,内容有下:从都具有存储程序命令和数据这点来看,内存和磁盘的功能是相同的。在计算机的5大部件"中,内存和磁盘也都被归类为存储部件。不......
  • 《程序是怎样跑起来的》第四章读后感
    在第四章中主要讲关于内存的,内容如下:计算机是进行数据处理的设备,而程序表示的就是处理顺序和数据结构。由于处理对象数据是存储在内存和磁盘上的,因此程序必须能自由地使用......