构建未打包的WinUI3程序
我希望编译出来的WinUI3程序可以双击exe文件直接运行。
本文分成C++工程与C#工程两部分。
C++
创建一个空的已打包的WinUI3 C++工程,编译能跑,关掉工程(这里如果保持VS打开,可能下面修改完会报错),接下来修改.vcxproj文件。
找到<PropertyGroup>标签(应该很靠前),找到Appx打包<AppxPackage>,默认的状态是true,把值改成false:
1 | |
接着在<PropertyGroup>的末尾添加
1 | |
这样设置为不打包。
这样就可以编译出未打包的WinUI3程序了,目前程序有两个特征:
1.体积小(VS默认模板生成的Release大小为59.8MB)
2.需要设备安装Windows App SDK才能运行
换个设备就要装SDK太麻烦,所以我们编译的时候就带上SDK:
1 | |
这样就能随时随地运行,但是体积庞大(VS默认模板生成的Release大小为159MB)
C#
C#的工程我拿手头微软给的WinUINote项目测试,关掉工程(不关掉也可能报错),接下来修改.csproj文件。
在<PropertyGroup>标签的末尾添加这两句:
1 | |
写完之后打开工程,把生成切换为Unpackage:
不然会出现如下报错:
和C++工程一样,生成不需要设备安装Windows App SDK就能直接双击运行的程序。
测试了一下,包含SDK的程序目录大小为207MB,打包生成的大小为26.3MB。
【本文完】
构建未打包的WinUI3程序
https://mrwei95.github.io/2026/01/03/WinUI-NoPackage/