Bir CounterStrikeSharp Eklentisi Derlenirken "Missing Project Reference" Hatası Nasıl Düzeltilir
Bazı eklentiler iki depoya bölünmüştür: eklentinin kendisi ve bağlı olduğu ayrı bir "API" veya "shared" projesi, genellikle git alt modülü olarak bağlanır. Eklentiyi GitHub'dan basit bir .zip olarak indirirseniz, o alt modülün içeriği dahil edilmez, sadece ona bir işaretçi bulunur. Sonuç, onlarca kafa karıştırıcı CS0246/CS0103 hatasıyla başarısız olan bir derleme sürecidir, "type or namespace not found", eksik projenin sağlayacağı her sınıf için bir tane. Gerçek neden tek bir satırdır, kolayca gözden kaçar.
Gerçek hatayı bulun
Başarısız derleme günlüğünün en üstüne, CS0246 hata duvarının üstüne kaydırın. Şuna benzer bir satır arayın, gerçek neden budur, altındaki her şey bunun sonucudur:
warning MSB9008: The referenced project ../ggmcAPI/ggmcAPI.csproj does not exist.
Ne anlama geldiğini anlayın
Eklentinin .csproj dosyası, göreceli bir yol üzerinden başka bir projeye referans veriyor, yukarıdaki örnekte, eklentinin kendi klasörünün bir seviye üstünde bulunan ggmcAPI adlı bir klasör. O klasör basitçe yüklediğiniz arşivde yok.
Git alt modülü olup olmadığını kontrol edin
Eklentinin GitHub sayfasını açın ve normal bir dosya listesi yerine küçük bir ok simgesi ve kısa bir commit hash'i ile gösterilen bir klasör arayın, bu bir alt modüldür. GitHub'daki "Download ZIP" düğmesi alt modül içeriğini asla dahil etmez, sadece hangi commit olması gerektiğine bir işaretçi içerir. O alt modülün deposunu ayrıca açıp kendi başına indirmeniz gerekir.
Doğru klasör derinliği
Bu, çoğu insanın ilk denemede yanlış yaptığı adımdır. .csproj içindeki göreceli yol (örneğimizde ../ggmcAPI), .csproj dosyasının kendisini içeren klasöre göre çözülür, .zip arşivinizin köküne göre değil. Eklenti klasörünüz ve bağımlılık klasörünüz kardeş değilse, bir seviye yukarısı yanlış yere gider.
Kaçınılması gereken yaygın bir hata
Bağımlılık klasörünü eklentinin kendi klasörünün içine koymak mantıklı görünür, ama göreceli yolun beklediği şey bu değildir. Bu yapı, hiç klasör yokmuş gibi tamamen aynı şekilde başarısız olur:
Yeniden derleyin
Her iki klasör de doğru derinlikte yan yana durduğunda, arşivi yeniden sıkıştırın ve tekrar yükleyin. MSB9008 günlükten kaybolduysa ama hala hatalar görüyorsanız, bunlar artık ayrıca incelemeye değer gerçek derleme hatalarıdır.
CS2Sharp Derleyicisini AçBu rehber işinize yaradı mı?
Barlap topluluk için.