CounterStrikeSharpでよくあるコンパイルエラーの読み方
プラグインのコンパイルに失敗すると、ログは長く、コードだらけになります。全部を読む必要はほとんどありません。errorで始まる最初の行を見つけ、そのコードを下の一覧と照らし合わせてください。最初のエラーを直すと、ほかのエラーも一緒に消えることがよくあります。1つの問題が何十ものメッセージを引き起こすことがあるからです。
CS0246:型または名前空間が見つからない
コンパイラーが、使っているクラスを知りません。ファイルの先頭にusing行が足りないか、そのクラスを含むパッケージがプロジェクトファイルで参照されていないかのどちらかです。CCSPlayerControllerのようなゲーム側の型なら、CounterStrikeSharp.APIパッケージが参照されていること、ファイルにusing CounterStrikeSharp.API.Coreがあることを確認してください。
error CS0246: The type or namespace name 'CCSPlayerController' could not be found (are you missing a using directive or an assembly reference?)
CS0103:現在のコンテキストに名前が存在しない
コンパイラーから見えない名前を使っています。多くは入力ミス、別のメソッドで宣言した変数、または専用のusingが必要なクラスです。たとえばChatColorsは、CounterStrikeSharp.API.Modules.Utilsにあります。
error CS0103: The name 'ChatColors' does not exist in the current context
CS1061:メンバーの定義が見つからない
クラスは存在しますが、その名前のプロパティやメソッドがありません。入力ミスのほか、そのメンバーが追加・名称変更・削除された別バージョンのCounterStrikeSharp.API向けに書かれたコードであることが典型的な原因です。他人のプラグインなら、当社のバージョン確認画面で「現在」を選んでみてください。
error CS1061: 'CCSPlayerController' does not contain a definition for 'SomeMember'
NU1101:パッケージが見つからない
NuGetが、その名前と完全に一致するパッケージを見つけられません。プロジェクトファイル内のスペルを確認してください。1文字違うだけで見つかりません。パッケージが非公開だったり、個人のフィードにしかなかったりする場合、公開コンパイラーでは復元できないため、代わりにソースコードが必要です。
error NU1101: Unable to find package SomePackage. No packages exist with this id in source(s): nuget.org
NETSDK1045:SDKがこの.NETバージョンをサポートしていない
プロジェクトが、コンパイルに使っているSDKより新しい.NETバージョンを要求しています。新しいSDKをインストールするか、TargetFrameworkを下げてください。当社のコンパイラーでは、バージョン確認画面でコンパイラーが対応しているターゲットを選べます。
error NETSDK1045: The current .NET SDK does not support targeting .NET 10.0.
MSB9008:参照先のプロジェクトが存在しない
プロジェクトファイルが、通常は隣のフォルダーにある別のプロジェクトを指していますが、それがアップロードに含まれていません。プラグインのフォルダーだけでなく、リポジトリー全体のフォルダーをアップロードして、共有プロジェクトも含めてください。
error MSB9008: The referenced project '../Shared/Shared.csproj' does not exist.
CS8618:null非許容プロパティに関する警告
これは警告にすぎないので、コンパイルは止まりません。プロパティが空のままになる可能性を知らせています。簡単な動作確認なら無視して構いません。直す場合は、空文字列などの既定値を与えるか、型にクエスチョンマークを付けてください。
warning CS8618: Non-nullable property 'Name' must contain a non-null value when exiting constructor.
コンパイルは通るのに読み込まれない
エラーが1つもないプラグインでも、サーバー上で失敗することがあります。よくある原因は、サーバー側のCounterStrikeSharp.APIのバージョンが違うこと、またはコピーするファイルを間違えていることです。当てはまる場合は、「プラグインが読み込まれない」ガイドに進んでください。
このチュートリアルは役に立ちましたか?
Barlap コミュニティのために。