MySQL: Online
Load: High
Sandbox: Ready

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.

1

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.
2

É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.

3

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.

4

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.

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

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:

SajatPlugin.zip
SajatPlugin-1.0.0
SajatPlugin.csproj
ggmcAPI (rossz melyseg)
6

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ása

Hasznos volt ez az útmutató?

0 felhasználó találta hasznosnak ezt az útmutatót
Az oldal 0.011 másodperc alatt generálódott
CounterStrikeSharp Web Compiler V1.0 - Készült által RomaniaBarlap a közösségért.