📦

dotnetのworkloadが勝手にアップデートされて困ったのでバージョンを指定する

2024/10/11に公開

概要

.NETでmacOSアプリを作っている時、ワークロードが勝手に更新されてしまってビルドが通らなくなりました。流れとしては

  • ワークロードがアップデートされる。
  • 最新のmacOSに対応するため、最新のXCodeを求められる。
  • 最新のXCodeを入れるには最新のmacOSが必要。

という流れです。これが非常に困る。開発機をポンポン最新のOSにアップデートできない。ワークロードのバージョンを指定したいけどそんなオプションがない。

解決策

--from-rollback-fileというコマンドを使って、バージョンを記述しているJSONを読み込ませる事でバージョン指定が可能。

{
    "microsoft.net.sdk.macos": "14.5.8030/8.0.100"
}

これを例えばrollback.jsonという名前で保存したとしたら、以下コマンドでバージョン指定ができます。

dotnet workload update --from-rollback-file rollback.json

参考

https://github.com/dotnet/sdk/issues/37958

私がやった時はinstallコマンドでオプションでJSONを指定していましたがそれではうまくいかず、このissueを参考に一旦updateをかけたらうまくいきました。

Discussion