mpc実行時に発生したエラー System.InvalidOperationException: failed to get metadata of MessagePack.MessagePackObjectAttribute の対応
いつの間にかmpcの実行時にエラーが発生するようになっていた時に対応した内容のメモ。
コマンド
mpc -i [省略]/Assembly-CSharp.csproj -o [省略]/MessagePack/Generated
エラー
Project Compilation Start:Assembly-CSharp failed to get metadata of System.Threading.Tasks.Task`1 failed to get metadata of System.Threading.Tasks.Task Fail in console app running on MessagepackCompiler.RunAsync System.InvalidOperationException: failed to get metadata of MessagePack.MessagePackObjectAttribute at MessagePackCompiler.CodeAnalysis.ReferenceSymbols..ctor(Compilation compilation, Action`1 logger) in D:\a\1\s\src\MessagePack.GeneratorCore\CodeAnalysis\TypeCollector.cs:line 58 at MessagePackCompiler.CodeAnalysis.TypeCollector..ctor(Compilation compilation, Boolean disallowInternal, Boolean isForceUseMap, String[] ignoreTypeNames, Action`1 logger) in D:\a\1\s\src\MessagePack.GeneratorCore\CodeAnalysis\TypeCollector.cs:line 280 at MessagePackCompiler.CodeGenerator.GenerateFileAsync(Compilation compilation, String output, String resolverName, String namespace, Boolean useMapMode, String multipleIfDirectiveOutputSymbols, String[] externalIgnoreTypeNames) in D:\a\1\s\src\MessagePack.GeneratorCore\CodeGenerator.cs:line 61 at MessagePack.Generator.MessagepackCompiler.RunAsync(String input, String output, String conditionalSymbol, String resolverName, String namespace, Boolean useMapMode, String multipleIfDirectiveOutputSymbols, String[] externalIgnoreTypeNames) in D:\a\1\s\src\MessagePack.Generator\MessagepackCompiler.cs:line 65 at ConsoleAppFramework.ConsoleAppEngine.RunCore(ConsoleAppContext ctx, Type type, MethodInfo methodInfo, String[] args, Int32 argsOffset)
ぐぐってみたところ.net sdk 5が起因する問題のようでした。
自分には.NET 5 が必要無いため以下手順にて対応しました。