MySQL: Online
Load: Low
Sandbox: Running

Come correggere gli errori "Missing Project Reference" durante la compilazione di un plugin CounterStrikeSharp

Alcuni plugin sono divisi su due repository: il plugin stesso, e un progetto separato di tipo "API" o "shared" da cui dipende, di solito collegato come submodulo git. Se scarichi il plugin come semplice .zip da GitHub, il contenuto di quel submodulo non è incluso, solo un puntatore ad esso. Il risultato è una compilazione che fallisce con decine di errori confusi CS0246/CS0103, "type or namespace not found", uno per ogni classe che il progetto mancante avrebbe fornito. La vera causa è una singola riga, facile da perdere.

1

Individua l'errore reale

Scorri fino in cima al log di compilazione fallita, sopra il muro di errori CS0246. Cerca una riga come questa, è la vera causa, tutto ciò che segue ne è una conseguenza:

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

Capisci cosa significa

Il file .csproj del plugin fa riferimento a un altro progetto tramite un percorso relativo, nell'esempio sopra, una cartella chiamata ggmcAPI, un livello sopra la cartella del plugin stesso. Quella cartella semplicemente non è nel tuo archivio caricato.

3

Controlla se è un submodulo git

Apri la pagina del plugin su GitHub e cerca una cartella mostrata con una piccola icona a freccia e un breve hash di commit, invece di un normale elenco di file, quello è un submodulo. Il pulsante "Download ZIP" di GitHub non include mai il contenuto dei submoduli, solo un puntatore a quale commit dovrebbe essere. Dovrai aprire separatamente il repository di quel submodulo e scaricarlo per conto suo.

4

La profondità corretta della cartella

Questo è il passaggio che la maggior parte delle persone sbaglia al primo tentativo. Il percorso relativo nel .csproj (../ggmcAPI nel nostro esempio) viene risolto rispetto alla cartella che contiene il file .csproj stesso, non rispetto alla radice del tuo archivio .zip. Se la cartella del tuo plugin e la cartella della dipendenza non sono sorelle, un livello sopra porta nel posto sbagliato.

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

Un errore comune da evitare

Mettere la cartella della dipendenza dentro la cartella stessa del plugin sembra ragionevole, ma non è ciò che si aspetta il percorso relativo. Questa struttura fallirà esattamente come se non ci fosse alcuna cartella:

TuoPlugin.zip
TuoPlugin-1.0.0
TuoPlugin.csproj
ggmcAPI (profondità sbagliata)
6

Ricompila

Una volta che entrambe le cartelle sono affiancate alla profondità corretta, ricomprimi l'archivio e caricalo di nuovo. Se MSB9008 è sparito dal log ma vedi ancora errori, ora sono errori di compilazione reali che vale la pena esaminare separatamente.

Apri il compilatore CS2Sharp

Questo tutorial ti è stato utile?

0 utenti hanno trovato utile questo tutorial
Pagina generata in 0.011 secondi
CounterStrikeSharp Web Compiler V1.0 - Realizzato con da RomaniaBarlap per la comunità.