Unityで手動でパッケージ更新を行う方法について書きます. この動画を参考にしてます.
基本はUnityでC#スクリプト用のPackageを管理するときはNuGetForUnityを使えばいいのですが,こいつ,Stable版の最新バージョンしかDLしたりupdateしてくれません(2023年2月現在).beta版にしかない機能を使いたいのに...という時に手動でパッケージ更新する方法を記します.
まずはNuGet Galleryを訪ねます.
希望のアプデ先パッケージをDLします.
次に,DLしたファイルに着目.
.nupkg拡張子をzip拡張子に変えます.
zipファイルを展開します.するとまあ不思議,dllとxmlが入っているではありませんか(当たり前)
よって,このディレクトリをPackage以下に配置すればOK.
確認してみる.
その後,おそらく依存関係のエラーが発生してるので,それをよしなに解決していく.
<2024.03.13追記> パッケージの衝突の解決法について.
Assembly 'Assets/Packages/Azure.Core.1.38.0/lib/netstandard2.0/Azure.Core.dll' will not be loaded due to errors: Reference has errors 'System.Text.Json'.
とか,
Assembly 'Assets/Packages/System.Text.Json.8.0.2/lib/net462/System.Text.Json.dll' will not be loaded due to errors: Unable to resolve reference 'System.Runtime.CompilerServices.Unsafe'. Is the assembly missing or incompatible with the current platform? Reference validation can be disabled in the Plugin Inspector.
とかの依存関係のエラーが出た時.例えば以下のような画像のエラーが出たとき.
例えば図で言うとTextAnalyticsとの依存関係で問題が起こっている.Azure.AI.TextAnalyticsのパッケージをNuGetで見ると...
下の方にDependenciesが書かれている.あんまりこの辺りNuGetは自動で依存関係を解決してくれはせず,脳死で各パッケージの最新版をアップデート/インストールしてしまうっぽい.というか,2019年とかむっちゃ古いまま更新がされてないパッケージがあるのが原因.おいおい(例えばSystem.Runtimeとかはオリンピック並みの更新頻度).
よって,さっきの図でNuGetのDependenciesを自分で見ながら,NuGet Galleryから適切なバージョンのパッケージを自分でインストールする必要がある.やり方は上に書いてあるような,.nupkgを落としてきて,.zipに変える→解凍,それをAssets/Packagesとか適切なところに配置する.