つばろぐ

主に C#, .NET, Azure の備忘録です。たまに日記。

Windowsのパッケージ管理をChocolateyからwingetに移行計画中

長らく ChocolateyWindows のパッケージ管理を行ってきましたが、更新が面倒だったり Microsoft ストアアプリを扱えないことだったりで、 winget への移行を計画中です。

そこで Windows Sandbox で練習しようとしたら、Windows Sandbox に winget をインストールする作業で手間取ったので解決策を残しておきます。

winget のインストールエラー

zenn.dev

上記の記事を参考に、コマンドラインでインストールしようとしました。

Add-AppxPackage -Path Microsoft.VCLibs.x64.14.00.Desktop.appx
Add-AppxPackage -Path Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
  1. VC++ のパッケージをインストール
  2. winget をインストール

しかし winget をインストールするところで、下記のエラーが起きました。

Add-AppxPackage : Deployment failed with HRESULT: 0x80073CF3, Package failed updates, dependency or conflict
validation.
パッケージ Microsoft.DesktopAppInstaller_1.17.10271.0_x64__8wekyb3d8bbwe
は、見つからないフレームワークに依存しているためインストールできません。インストールするこのパッケージには、フレームワーク
"Microsoft.UI.Xaml.2.7" (公開元 "CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington,
C=US"、ニュートラルまたは x64 プロセッサ アーキテクチャ、最少バージョン 7.2109.13004.0)
が必要です。現在インストールされている "Microsoft.UI.Xaml.2.7" という名前のフレームワークは次のとおりです: {}
NOTE: For additional information, look for [ActivityId] 41e5ee07-5275-0007-0549-e6417552d801 in the Event Log or use
the command line Get-AppPackageLog -ActivityID 41e5ee07-5275-0007-0549-e6417552d801
At line:1 char:1
+ Add-AppxPackage -Path Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msi ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : WriteError: (C:\Users\WDAGUt...bbwe.msixbundle:String) [Add-AppxPackage], IOException
    + FullyQualifiedErrorId : DeploymentError,Microsoft.Windows.Appx.PackageManager.Commands.AddAppxPackageCommand

Microsoft.UI.Xaml.2.7 というパッケージが足りないらしい。
ということで、NuGet のサイトからパッケージを直接ダウンロードしてきます。

www.nuget.org

Zip ファイルでダウンロードできるので、それを展開して winget のインストールコマンドに追加します。

Add-AppxPackage -Path Microsoft.VCLibs.x64.14.00.Desktop.appx
Add-AppxPackage -Path microsoft.ui.xaml.2.7.1\tools\AppX\x64\Release\Microsoft.UI.Xaml.2.7.appx
Add-AppxPackage -Path Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle

これで Windows Sandbox に winget をインストールすることができました。

PS C:\Users\WDAGUtilityAccount> winget -v
v1.2.10271