大家好,我是编程乐趣。好消息来了,微软官方发布 winapp 开源命令行工具:可以一键初始化开发环境、一键打包,让我们从繁琐的环境搭建中解脱出来,从而将更多精力集中在代码编写与产品创新上。## 📌 项目简介
winapp CLI 是微软推出的一个命令行工具,旨在为 Windows 应用开发者提供统一、简洁的开发体验。它整合了 Windows SDK、App SDK、应用打包(MSIX)、证书管理、清单生成、调试身份配置等核心功能,适用于各种开发框架(如 Electron、.NET、C++、Rust、Tauri、Python 等)。
##
🎯 核心功能
winapp CLI 主要解决以下几类开发痛点:
1. 跨平台开发者接入 Windows 原生能力
即使你使用的是 Electron、Tauri 或 Python 等跨平台技术栈,也能轻松调用 Windows App SDK 和 现代 Windows API (如通知、窗口管理、AI 接口等)。### 2. 快速添加"应用身份"(App Identity****)
某些 Windows API(如后台任务、推送通知)要求应用具有"包身份"(Package Identity)。winapp CLI 可通过 create-debug-identity 命令无需完整打包 即可为开发中的 EXE 添加临时身份,极大简化调试流程。### 3. MSIX 打包与签名
一键生成符合 Microsoft Store 要求的 MSIX 安装包 。内置开发证书生成(cert)和签名工具(sign),支持自动化部署。### 4. 自动生成清单与资源
自动生成 AppxManifest.xml、应用图标、资源文件等。
支持自定义配置,适配不同框架需求。### 5. 集成开发工具链
提供对 Windows SDK 工具(如 MakeAppx、SignTool)的封装,通过 winapp tool 直接调用。
🛠️ 安装方式
- 推荐(Windows 用户):使用 WinGet
winget install Microsoft.winappcli --source winget
- 通过 NPM 安装 Electron 项目的 CLI:
npm install @microsoft/winappcli --save-dev-
- CI/CD 环境 :使用官方 GitHub Action
setup-WinAppCli - 手动下载:从 GitHub Releases 获取最新版本。
🧪 支持的开发框架
winapp CLI 官方提供了多个示例项目,涵盖:
框架示例内容Electron含 C++/C# 原生插件、AI 集成(Windows ML).NET / WPF控制台应用、桌面应用打包C++ (Win32/CMake)原生 Windows 应用Rust调用 Windows APITauri跨平台 Rust 应用打包为 MSIXPython / CLI 工具将普通 EXE 打包为 MSIX
🛠️ 使用示例
第一步:创建 .NET 应用
dotnet new console -n MyDotNetApp``cd MyDotNetApp
第二步:初始化 winapp 配置
在项目根目录运行:
winapp init该命令会生成 winapp.json 配置文件,用于定义应用名称、版本、入口点(EXE 路径)、图标等元数据。
示例 winapp.json 片段:
{`` "appName": "MyDotNetApp",`` "version": "1.0.0",`` "exePath": "bin/Debug/net8.0/MyDotNetApp.exe",`` "publisher": "CN=YourName"``}
第三步:创建调试身份(关键!)
许多 Windows API(如发送通知)要求应用具有"包身份"(Package Identity)。传统方式需完整打包 MSIX 才能调试,极其低效。
而 winapp CLI 提供了革命性的解决方案:
winapp create-debug-identity这条命令会在不打包的情况下,为你的 EXE 注入临时身份,使其在开发阶段就能调用受保护的 Windows API!
✅ 无需修改代码
✅ 无需重新编译
✅ 即时生效
第四步:打包为 MSIX
准备发布?只需一条命令:
winapp pack .\bin\Release\net10.0-windows10.0.26100.0 --manifest .\appxmanifest.xml --cert .\devcert.pfx 它会自动:
-
生成
AppxManifest.xml -
创建 MSIX 包
-
使用开发证书签名(可通过
winapp cert管理)
最终输出 .msix 文件,可直接安装、分发,甚至提交到 Microsoft Store!
🔗 开源项目
GitHub:https://github.com/microsoft/winappCli
✅ 总结
winapp CLI 是微软为现代化 Windows 应用开发打造的一站式 CLI 工具,尤其适合:
-
想在跨平台项目中使用 Windows 原生功能的开发者
-
需要快速调试"包身份"相关 API 的团队
-
希望自动化 MSIX 打包和签名的 DevOps 流程
- End -
文章首发于公众号【编程乐趣】,欢迎大家关注。
