MySQL: Online
Load: Low
Sandbox: Running

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?)
2

CS0103:当前上下文中不存在该名称

你用了一个编译器在当前位置看不到的名称。常见情况是拼写错误、在另一个方法里声明的变量,或需要自己 using 语句的类。例如 ChatColors 来自 CounterStrikeSharp.API.Modules.Utils。

error CS0103: The name 'ChatColors' does not exist in the current context
3

CS1061:成员没有定义

这个类存在,但没有该名称的属性或方法。典型原因是拼写错误,或者代码是为另一个 CounterStrikeSharp.API 版本写的,而该成员在那个版本中被新增、改名或移除了。如果是别人的插件,可以在我们的版本提示中试试“当前”选项。

error CS1061: 'CCSPlayerController' does not contain a definition for 'SomeMember'
4

NU1101:找不到软件包

NuGet 找不到名称完全一致的软件包。请检查项目文件中的拼写,错一个字母就足以导致失败。如果软件包是私有的,或只存在于某人自己的源中,公共编译器无法还原它,你需要改用它的源代码。

error NU1101: Unable to find package SomePackage. No packages exist with this id in source(s): nuget.org
5

NETSDK1045:SDK 不支持此 .NET 版本

项目要求的 .NET 版本比用来编译它的 SDK 更新。请安装更新的 SDK,或者降低 TargetFramework。使用我们的编译器时,可以在版本提示中选择编译器支持的目标版本。

error NETSDK1045: The current .NET SDK does not support targeting .NET 10.0.
6

MSB9008:引用的项目不存在

项目文件指向另一个项目,通常在相邻的文件夹里,而它没有包含在上传内容中。请上传整个仓库文件夹,而不只是插件文件夹,这样共享项目才会在场。

error MSB9008: The referenced project '../Shared/Shared.csproj' does not exist.
7

CS8618:关于不可为 null 属性的警告

这只是警告,不会阻止编译。它提醒你某个属性可能保持为空。快速测试时可以忽略它;想修复的话,给属性一个默认值,比如空字符串,或者在类型后加上问号。

warning CS8618: Non-nullable property 'Name' must contain a non-null value when exiting constructor.
8

能编译,但仍然无法加载

没有任何错误的插件,也可能在服务器上失败。常见原因是服务器上的 CounterStrikeSharp.API 版本不同,或者复制错了文件。如果你遇到的是这种情况,请继续阅读关于插件无法加载的指南。

这篇教程对你有帮助吗?

页面生成耗时 0.011 秒
CounterStrikeSharp Web Compiler V1.0 - 制作工具 由 RomaniaBarlap 为社区打造。