17611538698
info@21cto.com

微软预览发布命令行工具,更方便调用现代 Windows API

编程语言 0 12 16小时前

导读:微软为方便Windows开发者,新推出一款命令行工具。

微软新近推出一款名为 winapp 的命令行工具,旨在解决未使用 Visual Studio 的开发人员调用最新 Windows API 的复杂性问题。

Windows 团队表示道,问题在于“Windows 开发通常涉及管理多个 SDK、创建和编辑多个清单、生成证书以及应对复杂的打包要求”。

winapp CLI(命令行界面)既可以准备开发环境,又可以配置应用程序代码以支持现代 Windows API,而无需 Visual Studio。

虽然 Windows AI API 本身不是 AI 工具,但最近 Windows AI API 是 winapp CLI 解锁的 API 之一,其中包括使用Phi Silica,这是一个正在开发的本地语言模型,可在具有 NPU(神经处理单元)的 Copilot+ PC 上使用。

https://learn.microsoft.com/en-us/windows/ai/apis/phi-silica

各位知道,winapp CLI 的设计理念本身很复杂。

首先,Windows 是一个多功能平台,它既有可以追溯到 Windows 早期时代的经典 Win32 API(现在简称为 Windows API),也有支持 Windows 新特性的现代 API,这些新特性包括 WinUI 用户界面框架、Windows AI API、通知与控件。

这种划分体现在两个 Windows SDK(软件开发工具包)的存在上,称为经典 Windows SDK 与现代 Windows App SDK。 

图1 Windows 有两个 SDK,分别是经典 Windows SDK 和现代 Windows 应用 SDK

历史上,大多数 Windows 开发人员都使用 Visual Studio,但鉴于需要支持移动平台和 Mac,跨平台开发日益普及,开发人员更倾向于使用 Visual Studio Code (VS Code) 或其他开发工具。

在这种情况下,构建可在 Windows 上运行的应用程序很容易,但利用现代 Windows API 却充满挑战,导致应用程序无法充分利用许多可用功能。这对于开发人员来说可能是一个问题,因为他们的应用程序功能不够完善;而对于微软来说,这也是一个问题,因为这些应用程序未能充分展现 Windows 的优势。

问题很大程度上在于,Windows 应用 SDK 的某些元素只能通过微软所谓的“应用打包”来使用。

文档指出:“许多 Windows 扩展功能——包括后台任务、通知、动态磁贴、自定义上下文菜单扩展和共享目标——只有在应用运行时具有包标识的情况下才能被使用。” 要获得包标识,不仅需要应用已签名,还需要使用 MSIX(MSI(Microsoft Installer)包的现代演进版本)进行打包。Visual Studio可以处理开发和调试过程中的这些步骤,但使用其他工具则并非易事。

使用 winapp,开发者们可以输入: 

winapp create-debug-identity my-app.exe

该工具会自动创建包标识。它特别支持了 Electron,这是一个使用 JavaScript、HTML 和 CSS 构建跨平台应用程序的框架,VS Code 本身也使用了 Electron。

开发者们对 winapp 的最初反应颇具启发性,既有困惑,也有对使用这款新工具的兴趣。“我一开始把它看成了 WinApp,还挺兴奋的。结果失望了。”一位开发者说道

其他人则担心 winapp 会与名为 Windows App 的新型远程桌面客户端混淆。

微软即便只是让开发者使用 WinUI 都面临着不小的挑战,更别提其他现代 API 了。“看看 WinUI 的 GitHub 代码库讨论和未解决的问题,你就知道它有多糟糕了。”另一条新闻评论如此写道。

这些评论或许表明,微软关于现代Windows桌面开发过于复杂的观点是正确的。希望新工具有众多Windows开发者有所帮助,从根本上解决问题。 

作者:场长

评论

我要赞赏作者

请扫描二维码,使用微信支付哦。

分享到微信