前言

对于不喜欢频繁的“被教做事”的更新的人来说,Windows 10 的 LTSC 版本无疑是一个良好的权衡。
在不牺牲兼容性和安全性的前提下,LTSC 有显著更少的更新和“教你做事”的东西。

然而,LTSC 同时也不含有 Microsoft Store 等 UWP/Appx 必须的组件。
尽管网上已经有很多方法安装 Microsoft Store,但私以为在如此一个 Geek 的系统中,安装一个 Bug 如此多的商店并不“清真”。

所以,另一条路是使用包管理器 Winget。它内置了 Microsoft Store 源,对于轻度用户来说,这足以满足基础的使用 UWP/Appx 应用的需求。并且 Winget 中也有很多很好的 Win32 程序,可以显著提高管理软件的效率。

本文将介绍如何在 LTSC 2021 中,以清真的 系统级别安装 的方法安装 winget。

写的有 bug 的参考文档:https://github.com/microsoft/winget-cli/discussions/1956

需要准备的文件

  • VCLibs 的安装文件,可以在这里下载: https://aka.ms/Microsoft.VCLibs.x64.14.00.Desktop.appx
  • UI.Xaml 的安装文件,转到 https://store.rg-adguard.net/ 中,输入框左面的选择框选择 ProductFamilyName,再输入 Microsoft.UI.Xaml.2.7_8wekyb3d8bbwe 。最后滚动到下面,下载符合你架构的 .appx 格式包(不用管BlockMap)。
  • Winget 官方发布文件中的 MsixBundleLicense Xml。转到官方 GitHub 发布页面 ,然后下载最新的 Release 中的扩展名为 .msixbundle.xml 的两个文件。
  • 下载完成这些文件后,为方便,建议临时将这四个文件都放在你系统盘的根目录。类似这样:InstallWingetFileDownloadedList.png

安装依赖

  • 打开一个管理员权限的 PowerShell,然后输入:

    Add-AppxProvisionedPackage -Online -PackagePath "C:\Microsoft.VCLibs.x64.14.00.Desktop.appx" -SkipLicense
    
    Add-AppxProvisionedPackage -Online -PackagePath "C:\Microsoft.UI.Xaml.2.7_7.2203.17001.0_x64__8wekyb3d8bbwe.Appx" -SkipLicense

其中路径和文件名的出入请务必注意替换。

这将系级级别安装 Winget 的两个依赖。如果它们出现问题,Winget 安装完后将会无法使用(而且安装的时候还不会报错)。

安装本体

  • 依然是在管理员身份的 PowerShell 中,执行:

    Add-AppxProvisionedPackage -Online -PackagePath "C:\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle" -LicensePath "C:\9c0fe2ce7f8e410eb4a8f417de74517e_License1.xml"

依然请注意路径和文件名的替换。

检查

完成安装之后,winget 应该就可以使用了。重新打开你的 PowerShell 以刷新 PATH 设定即可。
如果重启 PowerShell 后依然报错 winget 命令未找到,请尝试重启电脑。若重启电脑依然未解决,请检查你是否没有正确安装。

执行 winget 命令的正常输出应该类似:

Windows 程序包管理器 v1.2.10271
版权所有 (C) Microsoft Corporation。保留所有权利。

WinGet 命令行实用工具可从命令行安装应用程序和其他程序包。

使用情况: winget [<命令>] [<选项>]

下列命令有效:
  install    安装给定的程序包
  show       显示包的相关信息
  source     管理程序包的来源
  search     查找并显示程序包的基本信息
  list       显示已安装的程序包
  upgrade    升级给定的程序包
  uninstall  卸载给定的程序包
  hash       哈希安装程序的帮助程序
  validate   验证清单文件
  settings   打开设置或设置管理员设置
  features   显示实验性功能的状态
  export     导出已安装程序包的列表
  import     安装文件中的所有程序包

如需特定命令的更多详细信息,请向其传递帮助参数。 [-?]

下列选项可用:
  -v,--version  显示工具的版本
  --info        显示工具的常规信息

可在此找到更多帮助: https://aka.ms/winget-command-help

当你看到这条消息的时候,你就可以放心的删掉那些安装用临时文件了。

安装你的第一个包

输入此命令以安装 Windows Terminal:

winget install Microsoft.WindowsTerminal

如果你顺利看到了 Windows Terminal 被安装,则恭喜! 一切已尽数就绪。

最后的杂谈

那教程写的是真坑爹,少一个 UI.Xaml 的依赖,害我 debug 半天..