MySQL: Online
Load: Low
Sandbox: Ready

Cum repari eroarea "Missing Project Reference" la compilarea unui plugin CounterStrikeSharp

Unele plugin-uri sunt impartite in doua repo-uri: plugin-ul propriu-zis, si un proiect separat de tip "API" sau "shared" de care depinde, de obicei legat ca submodul git. Daca descarci plugin-ul ca un simplu .zip de pe GitHub, continutul acelui submodul nu e inclus, doar un pointer catre el. Rezultatul e un build care esueaza cu zeci de erori confuze CS0246/CS0103, "type or namespace not found", cate una pentru fiecare clasa pe care ar fi furnizat-o proiectul lipsa. Cauza reala e o singura linie, usor de ratat.

1

Gaseste eroarea reala

Deruleaza pana sus, deasupra zidului de erori CS0246. Cauta o linie ca aceasta, e cauza reala, tot ce urmeaza dupa e o consecinta:

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

Intelege ce inseamna

Fisierul .csproj al plugin-ului face referire la un alt proiect printr-o cale relativa, in exemplul de mai sus, un folder numit ggmcAPI, aflat cu un nivel deasupra folderului plugin-ului. Acel folder pur si simplu nu e in arhiva pe care ai incarcat-o.

3

Verifica daca e submodul git

Deschide pagina plugin-ului pe GitHub si cauta un folder afisat cu o mica sageata si un hash scurt de commit, in loc de o listare normala de fisiere, asta e un submodul. Butonul "Download ZIP" de pe GitHub nu include niciodata continutul submodulelor, doar un pointer catre commit-ul la care ar trebui sa fie. Trebuie sa deschizi separat repo-ul acelui submodul si sa-l descarci de sine statator.

4

Pune-l la adancimea corecta

Ala e pasul pe care userii il gresesc de obicei la prima incercare. Calea relativa din .csproj (../ggmcAPI in exemplul nostru) se rezolva fata de folderul care contine chiar fisierul .csproj, nu fata de radacina arhivei .zip. Daca folderul plugin-ului si folderul dependintei nu sunt "surori", un nivel mai sus ajunge in alta parte, gresita.

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

O greseala frecventa de evitat

Sa pui folderul dependintei chiar in interiorul folderului plugin-ului pare logic, dar nu e ce asteapta calea relativa. Structura asta va esua exact la fel ca atunci cand nu exista deloc niciun folder:

PluginulTau.zip
PluginulTau-1.0.0
PluginulTau.csproj
ggmcAPI (adancime gresita)
6

Recompileaza

Odata ce ambele foldere stau alaturi, la adancimea corecta, re-arhiveaza si incarca din nou. Daca MSB9008 nu mai apare in log dar tot vezi erori, alea sunt acum erori reale de compilare, care merita investigate separat.

Deschide Compilatorul CS2Sharp

A fost util acest tutorial?

0 utilizatori au considerat acest ghid util
Pagină generată în 0.012 secunde
CounterStrikeSharp Web Compiler V1.0 - Realizat cu de RomaniaBarlap pentru comunitate.