CounterStrikeSharp प्लगइन कंपाइल करते समय "Missing Project Reference" एरर कैसे ठीक करें
कुछ प्लगइन दो रिपॉजिटरी में बंटे होते हैं: प्लगइन खुद, और एक अलग "API" या "shared" प्रोजेक्ट जिस पर यह निर्भर करता है, आमतौर पर git सबमॉड्यूल के रूप में जुड़ा होता है। अगर आप प्लगइन को GitHub से सीधे .zip के रूप में डाउनलोड करते हैं, तो उस सबमॉड्यूल की सामग्री शामिल नहीं होती, केवल उसकी ओर एक पॉइंटर होता है। नतीजा यह होता है कि बिल्ड दर्जनों भ्रमित करने वाली CS0246/CS0103 एरर के साथ विफल हो जाता है, "type or namespace not found", गायब प्रोजेक्ट द्वारा दी जाने वाली हर क्लास के लिए एक। असली वजह एक ही लाइन में है, जिसे आसानी से नज़रअंदाज़ किया जा सकता है।
असली एरर ढूंढें
विफल बिल्ड लॉग के सबसे ऊपर, CS0246 एरर की दीवार से भी ऊपर स्क्रॉल करें। इस जैसी एक लाइन ढूंढें, यही असली वजह है, नीचे जो कुछ भी है वह इसका परिणाम है:
warning MSB9008: The referenced project ../ggmcAPI/ggmcAPI.csproj does not exist.
समझें इसका क्या मतलब है
प्लगइन की .csproj फ़ाइल एक रिलेटिव पाथ के ज़रिए किसी दूसरे प्रोजेक्ट का संदर्भ देती है, ऊपर के उदाहरण में, ggmcAPI नाम का एक फ़ोल्डर, जो प्लगइन के अपने फ़ोल्डर से एक लेवल ऊपर है। वह फ़ोल्डर आपके अपलोड किए गए आर्काइव में बस मौजूद नहीं है।
जांचें कि यह git सबमॉड्यूल है या नहीं
GitHub पर प्लगइन का पेज खोलें और एक सामान्य फ़ाइल लिस्ट की जगह एक छोटे तीर आइकन और छोटे commit हैश के साथ दिखाए गए फ़ोल्डर को ढूंढें, यह एक सबमॉड्यूल है। GitHub का "Download ZIP" बटन कभी भी सबमॉड्यूल की सामग्री शामिल नहीं करता, केवल यह बताने वाला एक पॉइंटर होता है कि कौन सा commit होना चाहिए। आपको उस सबमॉड्यूल की खुद की रिपॉजिटरी अलग से खोलनी होगी और उसे अलग से डाउनलोड करना होगा।
सही फ़ोल्डर गहराई
यह वह स्टेप है जिसे ज़्यादातर लोग पहली बार में गलत कर देते हैं। .csproj में रिलेटिव पाथ (हमारे उदाहरण में ../ggmcAPI) उस फ़ोल्डर के सापेक्ष हल होता है जिसमें खुद .csproj फ़ाइल है, आपके .zip आर्काइव के रूट के सापेक्ष नहीं। अगर आपका प्लगइन फ़ोल्डर और डिपेंडेंसी फ़ोल्डर एक ही लेवल पर नहीं हैं, तो एक लेवल ऊपर जाने से गलत जगह पहुंचते हैं।
एक आम गलती जिससे बचें
डिपेंडेंसी फ़ोल्डर को प्लगइन के अपने फ़ोल्डर के अंदर रखना तर्कसंगत लगता है, लेकिन रिलेटिव पाथ को यह नहीं चाहिए। यह स्ट्रक्चर बिल्कुल वैसे ही विफल होगा जैसे कोई फ़ोल्डर हो ही न:
फिर से कंपाइल करें
एक बार जब दोनों फ़ोल्डर सही गहराई पर साथ-साथ आ जाएं, तो आर्काइव को फिर से ज़िप करें और दोबारा अपलोड करें। अगर लॉग से MSB9008 गायब हो गया है लेकिन फिर भी एरर दिख रही हैं, तो अब वे असली कंपाइल एरर हैं जिन्हें अलग से देखना उचित है।
CS2Sharp कंपाइलर खोलेंक्या यह ट्यूटोरियल उपयोगी था?
Barlap समुदाय के लिए।