关于 Winget

官方网站

官方博客

Windows Package Manager Preview


官方帮助
https://docs.microsoft.com/zh-cn/windows/package-manager/


总结
    • Microsoft公式のコマンドラインパッケージマネージャーがリリース!(2020年6月2日現在プレビュー版)

 

    • ソフトウェアの必要な場所からのダウンロードとインストールを自動化できる。

最新バージョン(または指定した正確なバージョン)を検索してインストール
search、showコマンドで使用可能なパッケージの検索

新たにパッケージマネージャーを作成した理由

信頼されたアプリケーションのリポジトリを構築し、悪意のあるソフトウェアがリポジトリやマシンに侵入する可能性を減らす。
パッケージマネージャーをネイティブWindowsアプリケーションとして提供する。

すべてのWindows 10バージョンをサポートしている


方便的事情
    • 例えば、Azureのチャットボット開発で、以下のコマンドで基本的な環境がそろう

再インストール、他の方に環境を設定してもらう際も便利になりそう

winget install -e --id Microsoft.PowerShell
winget install -e --id Microsoft.AzureCLI
winget install -e --id Microsoft.WindowsTerminal
winget install -e --id Microsoft.VisualStudioCode
winget install -e --id Microsoft.BotFrameworkEmulator
winget install -e --id Microsoft.BotFrameworkComposer

安装
Windows 11 在中国获得广泛使用。
    ✅標準でインストール
Windows 10 系统。
    • GitHub(個人的にはこちらがおすすめ)

 

    https://github.com/microsoft/winget-cli/releases

能够使用的命令
install   指定されたアプリケーションをインストール
show      アプリケーションに関する情報を表示
source    アプリケーションのソースを管理
search    アプリの基本情報を見つけて表示
hash      インストーラー ファイルをハッシュするヘルパー
validate  マニフェスト ファイルを検証

安装选项(–help)
-m,--manifest     アプリケーションのマニフェストへのパス
--id              ID で結果をフィルター処理
--name            名前で結果をフィルター処理
--moniker         アプリ モニカーで結果をフィルター処理
-v,--version      指定されたバージョンを使用します。既定値は最新のバージョンです
-s,--source       指定されたリソースを使用してアプリを検索
-e,--exact        完全一致を使用してアプリを検索
-i,--interactive  対話式インストールを要求する;ユーザー入力が必要である可能性があります
-h,--silent       サイレント インストールを要求
-o,--log          ログの場所 (サポートされている場合)
--override        インストーラーに渡される引数を上書き
-l,--location     インストール先 (サポートされている場合)

More help can be found at: https://aka.ms/winget-command-install

安装

 

    既定では対話型モードではないが、インストールの進行状況が表示される。
如果有多个候选人,就会失败。
> winget install PowerShell
Multiple apps found matching input criteria. Please refine the input.
Name                     Id                               Version         Matched
-----------------------------------------------------------------------------------------
PowerShell               Microsoft.PowerShell             7.0.2
Windows Terminal Preview Microsoft.WindowsTerminalPreview 1.0.1401.0      Tag: PowerShell
PowerShell-Preview       Microsoft.PowerShell-Preview     7.1.0-preview.3
Windows Terminal         Microsoft.WindowsTerminal        1.0.1401.0      Tag: powershell
如果要进行基于身份证进行完全匹配的指定,请添加-e、–id。
winget install -e --id Microsoft.PowerShell

搜索并显示“选项(–help)”。

请搜索Windows Package Manager (WinGet)相关内容,请点击以下链接:
https://docs.microsoft.com/zh-cn/windows/package-manager/winget/search
https://docs.microsoft.com/zh-cn/windows/package-manager/winget/show

几乎相同的选项。

以下为共同之处:

  --id         ID で結果をフィルター処理
  --name       名前で結果をフィルター処理
  --moniker    アプリ モニカーで結果をフィルター処理
  -s,--source  指定されたリソースを使用してアプリを検索
  -e,--exact   完全一致を使用してアプリを検索

搜索原生选项。
  --tag        タグ で結果をフィルター処理
  --command    コマンドによる結果のフィルター処理
  -n,--count   指定した数以下の結果を表示

展示专有选项
  -m,--manifest  アプリケーションのマニフェストへのパス
  -v,--version   指定されたバージョンを使用します。既定値は最新のバージョンです
  --versions     アプリの利用可能なバージョンを表示

源头

 

    追加のソースは、現時点ではサポートされていません。

在winget下载的文件存放位置。
%USERPROFILE%\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\

如果情况不顺利(如果没有权限)
以常规权限执行
winget install --Id OpenJS.Nodejs
Found Node.js [OpenJS.Nodejs]
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://nodejs.org/dist/v14.4.0/node-v14.4.0-x64.msi
  ██████████████████████████████  28.7 MB / 28.7 MB
Successfully verified installer hash
Installing ...
    • エラーコードが返却され、実行できない。

 

    対処策:管理者権限でコマンドを実行する。
Installer failed with exit code: 1602
Installer log is available at: C:\Users\\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\TempState\WinGet\OpenJS.Nodejs.14.4.0.log
2. 作为管理者执行
Found Node.js [OpenJS.Nodejs]
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://nodejs.org/dist/v14.4.0/node-v14.4.0-x64.msi
  ██████████████████████████████  28.7 MB / 28.7 MB
Successfully verified installer hash
Installing ...
Successfully installed!

如果不顺利的话,则有2种情况(英文版和日文版)。
winget install Microsoft.SQLServerManagementStudio
Found SQL Server Management Studio [Microsoft.SQLServerManagementStudio]
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://go.microsoft.com/fwlink/?linkid=2125901&clcid=0x409
  ██████████████████████████████  534 MB /  534 MB
Successfully verified installer hash
Installing ...
Installer failed with exit code: 1626
    • Microsoft SQL Server Mangement Studioは、既定でインストールされるのが英語版

 

    • 日本語版インストール済環境に英語版をインストールしてもバージョンアップできない

 

    • ログを確認しないと詳細はわからなかった。

%USERPROFILE%\AppData\Local\Temp\SsmsSetup\SSMS-Setup-ENU_20200609110102.log

日本語版をアンインストールすれば英語版をインストールできるが、当然ながら英語版しか使えない(SSMSは英語版と日本語版が別インストーラー)
日本語版を使いたければ、SSMSは通常通りのインストールとなる


如果出现问题,可以尝试以下方法3(同一版本)。
    同一バージョンの場合には、エラーコードが返却されたことがあった。(インストーラー次第)

如果事情不顺利(自我提升)
    • Windows Terminal上のPoweshellからPoweshellをインストールするとエラーとなったことがあった(自分自身を更新しようとしたため?)

cmd.exeから再インストールすると復旧した。


填補缺漏
    • 管理者のコマンドプロンプトから起動しなかった場合は、UACでブロックされる。

 

    • wingetのリポジトリは反映が遅い場合があった。

PowerShellのコマンドで、PoweShellが古いというメッセージが表示されるが、wingetではまだ更新されていないことがあった。


仅需要一种选项的话,以下是对这句话的汉语本地化改写:

借鉴

    • Microsoft ブログ

 

    • Microsoft ドキュメント

 

    • GitHub

 

    Build 2020 まとめ
bannerAds