MySQL: Online
Load: Low
Sandbox: Running

So behebst du "Missing Project Reference"-Fehler beim Kompilieren eines CounterStrikeSharp-Plugins

Manche Plugins sind auf zwei Repositories aufgeteilt: das Plugin selbst, und ein separates "API"- oder "shared"-Projekt, von dem es abhaengt, meist als git-Submodul verknuepft. Wenn du das Plugin als einfaches .zip von GitHub herunterlaedst, ist der Inhalt dieses Submoduls nicht enthalten, nur ein Verweis darauf. Das Ergebnis ist ein Build, der mit Dutzenden verwirrenden CS0246/CS0103-Fehlern fehlschlaegt, "type or namespace not found", einer fuer jede Klasse, die das fehlende Projekt bereitgestellt haette. Die eigentliche Ursache ist eine einzige Zeile, leicht zu uebersehen.

1

Finde den echten Fehler

Scrolle nach oben im fehlgeschlagenen Build-Log, ueber die Wand von CS0246-Fehlern. Suche nach einer Zeile wie dieser, sie ist die eigentliche Ursache, alles darunter ist eine Folge davon:

warning MSB9008: The referenced project ../ggmcAPI/ggmcAPI.csproj does not exist.
2

Verstehe, was das bedeutet

Die .csproj-Datei des Plugins verweist ueber einen relativen Pfad auf ein anderes Projekt, im Beispiel oben ein Ordner namens ggmcAPI, eine Ebene ueber dem Ordner des Plugins selbst. Dieser Ordner ist einfach nicht in deinem hochgeladenen Archiv.

3

Pruefe, ob es ein git-Submodul ist

Oeffne die Seite des Plugins auf GitHub und suche nach einem Ordner, der mit einem kleinen Pfeil-Symbol und einem kurzen Commit-Hash angezeigt wird, statt einer normalen Dateiliste, das ist ein Submodul. Der "Download ZIP"-Button von GitHub enthaelt niemals den Inhalt von Submodulen, nur einen Verweis darauf, welcher Commit es sein sollte. Du musst das Repository dieses Submoduls separat oeffnen und eigenstaendig herunterladen.

4

Die richtige Ordnertiefe

Das ist der Schritt, den die meisten beim ersten Versuch falsch machen. Der relative Pfad in der .csproj (../ggmcAPI in unserem Beispiel) wird relativ zum Ordner aufgeloest, der die .csproj-Datei selbst enthaelt, nicht relativ zum Stammverzeichnis deines .zip-Archivs. Wenn dein Plugin-Ordner und der Abhaengigkeits-Ordner keine Geschwister sind, fuehrt eine Ebene hoeher an die falsche Stelle.

DeinPlugin.zip
DeinPlugin-1.0.0
DeinPlugin.csproj
DeinPlugin.cs
ggmcAPI
ggmcAPI.csproj
5

Ein haeufiger Fehler

Den Abhaengigkeits-Ordner in den Plugin-Ordner selbst zu legen wirkt naheliegend, ist aber nicht das, was der relative Pfad erwartet. Diese Struktur schlaegt genauso fehl wie gar kein Ordner:

DeinPlugin.zip
DeinPlugin-1.0.0
DeinPlugin.csproj
ggmcAPI (falsche Tiefe)
6

Neu kompilieren

Sobald beide Ordner nebeneinander in der richtigen Tiefe liegen, packe das Archiv neu und lade es erneut hoch. Wenn MSB9008 aus dem Log verschwunden ist, aber du noch Fehler siehst, sind das jetzt echte Kompilierfehler, die es sich lohnt, separat zu untersuchen.

CS2Sharp-Compiler oeffnen

War diese Anleitung hilfreich?

0 Nutzer fanden diese Anleitung hilfreich
Seite generiert in 0.011 Sekunden
CounterStrikeSharp Web Compiler V1.0 - Erstellt mit von RomaniaBarlap für die Community.