はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【Unity】Unityが利用しているMicrosoft.CodeAnalysis.CSharpのバージョンの確認方法(Mac)

はじめに

今回はUnityが利用しているMicrosoft.CodeAnalysis.CSharpのバージョンの確認方法を紹介したいと思います。

Roslyn AnalyzerSource Generatorを利用する場合はMicrosoft.CodeAnalysis.CSharpのバージョンによって利用できるバージョンが異なるため、結構重要です。

確認方法

Microsoft.CodeAnalysis.CSharp.dllを見つける

UnityのバージョンによってMicrosoft.CodeAnalysis.CSharp.dllの場所が異なるようです。Microsoft.CodeAnalysis.CSharpのバージョンが異なる4つのUnityバージョンの例を載せます。

// v3.5.0.0
/Applications/Unity/Hub/Editor/2021.1.28f1/Unity.app/Contents/Tools/Roslyn/Microsoft.CodeAnalysis.CSharp.dll
// v3.9.0.0
/Applications/Unity/Hub/Editor/2021.3.0f1/Unity.app/Contents/Tools/ScriptUpdater/Microsoft.CodeAnalysis.CSharp.dll
// v3.11.0.0
/Applications/Unity/Hub/Editor/2022.3.0f1/Unity.app/Contents/Tools/ScriptUpdater/Microsoft.CodeAnalysis.CSharp.dll
// v4.4.0
/Applications/Unity/Hub/Editor/2023.2.0b17/Unity.app/Contents/Tools/Compilation/ApiUpdater/Microsoft.CodeAnalysis.CSharp.dll

ちなみにneueccさんの記事曰く、Unity 2021.2からv3.5からv3.9に変更され、Unity2022.2・Unity2023.1 から v4.1.0 のコンパイラが搭載されているそうです。
https://neue.cc/2022/12/16_IncrementalSourceGenerator.html

Riderで確認する方法

dllの中身を見る方法は沢山ありますが、今回はRiderを利用して調べる方法を紹介します。

適当なプロジェクトを開く(もしくは作成)し、以下の画像を参考にしながらエクスプローラーからアセンブリを選択します。

アセンブリを選択する

後はRider上のエクスプローラーにFinder上の.dllをドラッグ&ドロップすればデコンパイルしてくれます。

dllをデコンパイルする