Closed HiromuHatsuno closed 7 months ago
解決方法として、LangVersion.propsファイルの要素の値を10から11に変更したところ、エラーが解消されました。
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <LangVersion>11</LangVersion> <Nullable>enable</Nullable> </PropertyGroup> </Project>
エラーが発生したコードで使用されているMessageクラスを確認してみると、以下のようなコードになっていました。
namespace Claudia { [RequiredMember] public record Message() { // ... } }
[RequiredMember]属性がエラーの原因だと考えられます。[RequiredMember]は、C# 11で導入された新しい属性です。
https://learn.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/required
プロジェクトのC#のバージョン(LangVersion)が10以前に設定されていたため、[RequiredMember]属性がサポートされておらず、エラーが発生していたと考えられます。
あー,たしかにLangVersion = 11は必須になるかもです。 ちょっとUnityのほうのドキュメントを変えてみます。 ありがとうございます!
解決方法
解決方法として、LangVersion.propsファイルの要素の値を10から11に変更したところ、エラーが解消されました。
原因
エラーが発生したコードで使用されているMessageクラスを確認してみると、以下のようなコードになっていました。
[RequiredMember]属性がエラーの原因だと考えられます。[RequiredMember]は、C# 11で導入された新しい属性です。
https://learn.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/required
プロジェクトのC#のバージョン(LangVersion)が10以前に設定されていたため、[RequiredMember]属性がサポートされておらず、エラーが発生していたと考えられます。