Introduction
備忘録。
WinGet は Microsoft Store からのインストールが推奨されているためなのか、Microsoft Store が組み込まれていない Windows Server 2022 は非対応のような扱いになる。
Github から *.msixbundle をダウンロードしてインストールもできるが…これが一筋縄ではいかない。
確認環境は下記。
- Edition: Windows Server 2022 Standard
- Version: 21H2
- OS build: 20348.587
How to resolve?
WinGet のインストール
Github の公式ページ Windows Package Manager の Release ページから 1.8.1911 タグから *.msixbundle をダウンロードしてインストールすること。
ここで 1.8.1911 より新しいパッケージをインストールすると後述の作業において、依存関係の解決ができなくなる。
まず、インストールするとエラーになることが確認できる。
1 | $ Add-AppxPackage '.\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle' |
Microsoft.UI.Xaml.2.8 のインストール
Microsoft.UI.Xaml.2.8 がインストールされていないということなのでこれを公式から持ってくる。
こちらは WinUI 3 の Release ページからダウンロードできるのだが、他のコンポーネントが混じっていて探すのが面倒。
Microsoft.UI.Xaml v2.8.6 が目的の場所になる。
1 | $ Add-AppxPackage '.\Microsoft.UI.Xaml.2.8.x64.appx' |
再度、WinGet のインストールを試みると同様のエラー。
1 | $ Add-AppxPackage '.\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle' |
Microsoft.VCLibs.140.00.UWPDesktop のインストール
Microsoft.VCLibs.140.00.UWPDesktop 14.0.33728.0 がインストールされていないということなのでこれを公式から持ってくる。
こちらは How to install and update Desktop framework packages からダウンロードできるが、こちらのファイルは
The following package download links are now deprecated, and may no longer work in the future. Make sure to use the method described above to obtain the framework packages.
とあり、既に非推奨。
公式としては、 Visual Studio 2022 をインストールする際に、 Universal Windows Platform Development ワークロードに加え、 C++ (v143) Universal Windows Tools を追加することで %ProgramFiles(x86)%\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop\14.0
の Retail
内に *.appx ファイルが含まれているので、それを使えばよいとのこと。
とはいえ、まずはこの非推奨の方法で進める。
1 | $ Add-AppxPackage .\Microsoft.VCLibs.x64.14.00.Desktop.appx |
インストールに成功する。
補足
もしここで、 1.8.1911 より新しい WinGet のパッケージをインストールしようとすると、下記の通りインストールされている Microsoft.VCLibs.140.00.UWPDesktop のバージョン (14.0.33321.0) と要求されるバージョン (14.0.33728.0) の不一致により依存関係の解決に失敗する。
1 | $ Add-AppxPackage .\Microsoft.VCLibs.x64.14.00.Desktop.appx |
WinGet が起動しない
インストールに成功したのでバージョンを確認すると、なぜかエラーになる。
1 | $ winget --version |
この問題は No applicable app licenses foundAt line:1 #700 として報告されており、 その中で
In the latest release of winget (v1.0.11692 - link here) Microsoft quietly included a license XML file. I just tried it out and was now able to install and run winget on Server 2022 Preview with:
として 1.0.11692 に含まれるライセンスファイルを指定してインストールすれば解決するとあるが、そんなことしなくても、 Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle をダブルクリックしてインストールし直すと解決する (そもそも、依存パッケージをインストールした後に、最初からダブルクリックでインストールすれば良い気もするが)。
Reinstall を選択。
Reinstall を選択。
閉じる。
再度バージョンを確認。
1 | $ winget --version |
WinGet を最新版に
古いバージョンをインストールしたのでアップデートを行う。
依存関係も含めて全部更新する。
1 | $ winget upgrade --all |
動くことを確認
1 | $ winget install Microsoft.WinDbg |