MySQL: Online
Load: High
Sandbox: Running

Kako popraviti grešku "Missing Project Reference" pri kompajliranju CounterStrikeSharp plugina

Neki pluginovi su podeljeni na dva repozitorijuma: sam plugin, i poseban "API" ili "shared" projekat od kog zavisi, obično povezan kao git submodul. Ako preuzmete plugin kao obican .zip sa GitHub-a, sadržaj tog submodula nije uključen, samo pokazivač na njega. Rezultat je kompajliranje koje ne uspe sa desetinama zbunjujućih CS0246/CS0103 grešaka, "type or namespace not found", po jedna za svaku klasu koju bi nedostajući projekat obezbedio. Pravi uzrok je jedna linija, lako se previdi.

1

Pronađite pravu grešku

Skrolujte do vrha loga neuspešnog kompajliranja, iznad zida CS0246 grešaka. Potražite liniju kao što je ova, to je pravi uzrok, sve ispod nje je posledica toga:

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

Razumite šta to znači

Fajl .csproj plugina referencira drugi projekat putem relativne putanje, u gornjem primeru, folder pod nazivom ggmcAPI, koji se nalazi jedan nivo iznad foldera samog plugina. Taj folder jednostavno nije u vašoj otpremljenoj arhivi.

3

Proverite da li je git submodul

Otvorite stranicu plugina na GitHub-u i potražite folder prikazan malom strelicom i kratkim commit heš-om umesto normalne liste fajlova, to je submodul. GitHub-ovo dugme "Download ZIP" nikada ne uključuje sadržaj submodula, samo pokazivač na to koji commit treba da bude. Moraćete odvojeno da otvorite repozitorijum tog submodula i preuzmete ga samostalno.

4

Ispravna dubina foldera

Ovo je korak koji većina ljudi obično pogreši iz prvog pokušaja. Relativna putanja u .csproj-u (../ggmcAPI u našem primeru) razrešava se u odnosu na folder koji sadrži sam .csproj fajl, a ne u odnosu na koren vaše .zip arhive. Ako folder vašeg plugina i folder zavisnosti nisu na istom nivou, jedan nivo iznad vodi na pogrešno mesto.

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

Česta greška koju treba izbeći

Stavljanje foldera zavisnosti unutar samog foldera plugina deluje logično, ali to nije ono što relativna putanja očekuje. Ova struktura će propasti potpuno isto kao da uopšte nema foldera:

VasPlugin.zip
VasPlugin-1.0.0
VasPlugin.csproj
ggmcAPI (pogresna dubina)
6

Ponovo kompajlirajte

Kada oba foldera budu jedan pored drugog na ispravnoj dubini, ponovo arhivirajte i otpremite fajl. Ako je MSB9008 nestao iz loga ali i dalje vidite greške, to su sada prave greške kompajliranja koje vredi istražiti posebno.

Otvorite CS2Sharp kompajler

Da li vam je ovaj vodič bio koristan?

0 korisnika je smatralo ovaj vodič korisnim
Stranica generisana za 0.014 sekundi
CounterStrikeSharp Web Compiler V1.0 - Napravljeno sa od RomaniaBarlap za zajednicu.