MySQL: Online
Load: Low
Sandbox: Ready

Частые ошибки компиляции в 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.010 секунд
CounterStrikeSharp Web Compiler V1.0 - Сделано с от RomaniaBarlap для сообщества.