Hogyan javítsd a "Missing Project Reference" hibát egy CounterStrikeSharp plugin fordításakor
Néhány plugin két repóra van felosztva: maga a plugin, és egy különálló "API" vagy "shared" projekt, amelytől függ, általában git almodulként kapcsolva. Ha a plugint egyszerű .zip fájlként töltöd le a GitHubról, az almodul tartalma nem szerepel benne, csak egy mutató rá. Az eredmény egy fordítás, amely tucatnyi zavaró CS0246/CS0103 hibával hiúsul meg, "type or namespace not found", egy minden osztályra, amit a hiányzó projekt biztosított volna. A valódi ok egyetlen sor, könnyen elsikkad.
Találd meg a valódi hibát
Görgess fel a sikertelen fordítási napló tetejére, a CS0246 hibafal fölé. Keress egy ehhez hasonló sort, ez a valódi ok, minden alatta ennek a következménye:
warning MSB9008: The referenced project ../ggmcAPI/ggmcAPI.csproj does not exist.
Értsd meg, mit jelent
A plugin .csproj fájlja egy relatív úton hivatkozik egy másik projektre, a fenti példában egy ggmcAPI nevű mappára, amely a plugin saját mappája fölött egy szinttel helyezkedik el. Ez a mappa egyszerűen nincs a feltöltött archívumodban.
Ellenőrizd, hogy git almodul-e
Nyisd meg a plugin GitHub oldalát, és keress egy mappát, amelyet egy kis nyíl ikonnal és rövid commit hash-sel jelenít meg, normál fájllista helyett, ez egy almodul. A GitHub "Download ZIP" gombja soha nem tartalmazza az almodulok tartalmát, csak egy mutatót arra, melyik commitnak kellene lennie. Külön kell megnyitnod az almodul saját repóját, és önállóan letöltened.
A helyes mappamélység
Ez az a lépés, amit a legtöbben elsőre elrontanak. A .csproj-ban lévő relatív út (../ggmcAPI a példánkban) a .csproj fájlt tartalmazó mappához képest oldódik fel, nem a .zip archívumod gyökeréhez képest. Ha a plugin mappád és a függőség mappája nem testvérek, egy szinttel feljebb rossz helyre vezet.
Gyakori hiba, amit el kell kerülni
A függőségi mappa elhelyezése a plugin saját mappáján belül logikusnak tűnik, de nem ezt várja a relatív út. Ez a szerkezet pontosan úgy hiúsul meg, mintha egyáltalán nem is lenne mappa:
Fordítsd újra
Amint mindkét mappa egymás mellett van a helyes mélységben, csomagold újra az archívumot, és töltsd fel ismét. Ha az MSB9008 eltűnt a naplóból, de még mindig hibákat látsz, azok most már valódi fordítási hibák, amelyeket érdemes külön megvizsgálni.
CS2Sharp fordító megnyitásaHasznos volt ez az útmutató?
Barlap a közösségért.