V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Charon2050
V2EX  ›  Windows

如何下载或编译得到 winget.exe?

  •  
  •   Charon2050 · 4 天前 · 1422 次点击

    Winget 是 Windows 官方提供的包管理工具,在 Win11 和新版 Win10 中提供,仅有命令行版本。

    但是这个工具是预装在系统中的,官方未提供便携版的可执行文件下载,也就没法把 winget 复制到其它系统中使用,更无法内嵌在自己的软件中分发。官方提供的唯一安装方式是 UWP 安装包 Microsoft.DesktopAppInstaller.msixbundle

    强行复制系统中的 winget.exe 所在文件夹到其它系统也无法正常使用。

    目前发现 UnigetUI 的安装目录中有 winget-cli 文件夹,复制出来可以作为便携版的 winget 正常使用。但是一直依赖 UnigetUI 也不是好办法。

    所以想问问网友,是否知道什么渠道能下载到便携版的 winget ,或者怎么自行编译得到 winget 可执行文件?

    第 1 条附言  ·  4 天前

    划重点:便携化。我想找个不用安装就能在任何 Windows 电脑上运行的办法

    第 2 条附言  ·  4 天前

    感谢各位分享,最后自己找到了个简单粗暴的办法:从官方的 Microsoft.DesktopAppInstaller.msixbundle 中直接提取现成的可执行文件。

    1. 下载 msixbundle 安装包:winget-cli - GitHub
    2. 后缀名改成 .zip,用压缩软件打开,解压其中的 AppInstaller_x64.msix
    3. msix 的后缀名改成 .zip,再次解压,就好了……这就是便携的 Winget……
    4. 删掉无关文件,只保留以下 winget 必要的文件:
      AppInstallerBackgroundTasks.dll
      concrt140_app.dll
      Microsoft.Management.Configuration.dll
      Microsoft.Web.WebView2.Core.dll
      msvcp140_1_app.dll
      msvcp140_2_app.dll
      msvcp140_app.dll
      resources.pri
      vcamp140_app.dll
      vccorlib140_app.dll
      vcomp140_app.dll
      vcruntime140_1_app.dll
      vcruntime140_app.dll
      WindowsPackageManager.dll
      WindowsPackageManagerServer.exe
      winget.exe
      
    5. 得到以上 Winget 便携程序
    8 条回复    2025-07-31 08:34:46 +08:00
    Need4more
        2
    Need4more  
       4 天前
    winget.exe 又不是绿色软件,依赖其他组件,你是想单个 exe 就能跑?估计做不到,微软又没开源。

    你直接把 https://github.com/marticliment/UniGetUI/tree/3.3.0/src/UniGetUI.PackageEngine.Managers.WinGet/winget-cli_x64
    这个目录打包成 zip 不就行了。
    Charon2050
        4
    Charon2050  
    OP
       4 天前
    @Need4more 倒不是想单 exe ,而是想不依靠 UniGetUI ,从官方来源取得便携版的 winget
    Charon2050
        5
    Charon2050  
    OP
       4 天前
    @MrLonely 下载来看了一下这个脚本,走的还是从 Github 下载 msix 安装包后用命令行安装的方法,没法提取到便携可执行程序
    Charon2050
        6
    Charon2050  
    OP
       4 天前
    @qqqyh 这里面还是用命令行安装 Winget 的 msix 安装包,没法便携化
    TrackBack
        7
    TrackBack  
       4 天前
    winget-cli 是开源的,unigetUI 也是开源的,你翻翻人家怎么做的呗
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5633 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 02:24 · PVG 10:24 · LAX 19:24 · JFK 22:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.