2012-01-08 11 views
9

Ive ने http://intervaltree.codeplex.com/SourceControl/list/changesets -> दाएं हाथ की ओर -> डाउनलोड से सी # अंतराल पेड़ संग्रह कक्षा वर्ग डाउनलोड किया।सी # अन्य कोड का उपयोग

हालांकि मैं पर मेरे माइक्रोसॉफ्ट विजुअल C# 2010 एक्सप्रेस (जो भी सी # XNA चलता है) पूरी परियोजना नहीं खोल सकता क्योंकि

समाधान फ़ोल्डरों आवेदन

के इस संस्करण में समर्थित नहीं हैं

इसके अलावा मैं सिर्फ कक्षा को अपने स्वयं के अलग-अलग परियोजना में अलग-अलग उपयोग करना चाहता हूं।

मैं तीन महत्वपूर्ण प्रतीयमान फ़ाइलों Interval.cs, IntervalNode.cs और IntervalTree.cs मेरी परियोजना में नकल करने की कोशिश की, लेकिन इस संकलन त्रुटि उत्पन्न

कोई आयातकों जो इस फ़ाइल प्रकार

मैं संभाल रहे हैं मैंने अपनी परियोजना में तीन फाइलों की सामग्री को प्रतिलिपि बनाने और चिपकाने का भी प्रयास किया है, उन्हें अपने नामस्थान में encapsulating के साथ ही बहुत सारे कोड थे। मैं usings एक छोटे लेकिन समस्या यह संभवतः यह चाहता है कि PowerCollections .dll और .pcb फ़ाइलें के रूप में using Wintellect.PowerCollections; का कारण बनता है

प्रकार या नाम स्थान का नाम 'Wintellect' में चलाने के कुछ rearange पड़ा नहीं पाया जा सका (हैं यदि आप एक का उपयोग कर के निर्देश या एक विधानसभा संदर्भ याद आ रही?)

मैं या यकीन है कि जारी रखने के लिए कैसे नहीं कर रहा हूँ काम करने के लिए इस वर्ग करता है, तो मैं कैसे प्राप्त करने के लिए बिल्कुल सही काम कर रहा हूँ।

+0

बस जांचें कि क्या आपके पास संदर्भों की सूची में वह डीएल है और क्या यह वहां मौजूद है। चूंकि आपने कहा है कि आप स्टूडियो एक्सप्रेस का उपयोग कर रहे हैं, मुझे यकीन नहीं है कि आपके पास परीक्षण फ्रेमवर्क होगा जिसका उपयोग उन्होंने किया है। कोड के अंदर छोड़कर मुझे इस सेट अप का उपयोग करने में कोई समस्या नहीं थी, कुछ assert विफल। जबकि निर्माण समय पर दो आवेषण इस बात पर निर्भर करते हैं कि उस समय आपका सिस्टम क्या कर रहा है, वहां एक सरणी है जो चौराहे को पहले सरणी की गणना के संदर्भ में बदलना है। – King

+0

एक प्रोजेक्ट (एक क्लास लाइब्रेरी प्रोजेक्ट) बनाएं और उस संदर्भ को जोड़ें [dll] (http: //powercollections.codeplex।कॉम/रिलीज/व्यू/6863) जिस प्लेटफॉर्म पर आप निर्माण करने जा रहे हैं उसके आधार पर (x86/x64) और इसे बनाएं। – King

+1

यह वास्तव में एक कोड प्रश्न नहीं है। – ja72

उत्तर

13

अपने समाधान निर्देशिका में अपने समाधान

कॉपी IntervalTreeLib निर्देशिका के लिए पुस्तकालय जोड़ें। फिर, अपने समाधान पर राइट-क्लिक करें, और मौजूदा प्रोजेक्ट जोड़ें। IntervalTreeLib में इसे IntervalTreeLib.csproj पर इंगित करें, और खोलें क्लिक करें। उसमें आपके समाधान के लिए इंटरवल ट्रीलिब परियोजना को जोड़ना चाहिए।

Add Existing Project Screenshot

, अपने परियोजना में पुस्तकालय के लिए एक संदर्भ जोड़ें

फिर अपनी परियोजना में, IntervalTreeLib proejct के लिए एक संदर्भ जोड़ें: - सही संदर्भ फ़ोल्डर क्लिक करें, और जोड़ें संदर्भ। प्रोजेक्ट टैब पर क्लिक करें और इंटरवल ट्रीलिब का चयन करें।

Add Reference Screenshot

Select Project Reference Screenshot

उपयोग अपने कोड में कक्षाएं

तो अपने स्रोत में पुस्तकालय से कक्षाओं का उपयोग करने के लिए, आप या तो जोड़ने की जरूरत:

using IntervalTreeLib; 

void Foo() { 
    IntervalTree<int, int> tree = new ... 
} 

या, उन्हें उनके पूर्ण नाम से देखें:

IntervalTreeLib.IntervalTree<int, int> tree = new ... 
+0

धन्यवाद, अभी तक बहुत ही आशाजनक, ठीक दिखता है। जब मैं कोशिश करता हूं और "इंटरवल ट्री अंतराल = नया इंटरवल ट्री();" "इंटरवल ट्रीलिब" का उपयोग करता हूं, तो मुझे "टाइप या नेमस्पेस नाम 'इंटरवल ट्री' नहीं मिल सका (क्या आप एक प्रयोग निर्देश या असेंबली संदर्भ खो रहे हैं?"। नामस्थान समान रूप से गायब लगता है। – alan2here

+0

उस जानकारी को शामिल करने के लिए मेरे उत्तर को संपादित किया गया। –

+0

टाइप या नेमस्पेस नाम 'इंटरवल ट्रीलिब' नहीं मिला (क्या आप एक निर्देश या निर्देशक संदर्भ का उपयोग कर रहे हैं?) – alan2here

4

ओपन IntervalTreeLib.csproj फ़ाइल आप (IntervalTreeLib.csproj चुनें) या में अपने वर्तमान समाधान एक मौजूदा परियोजना को जोड़ने (आप समाधान पर राइट क्लिक कर सकते हैं और) यह संपूर्णता में इस परियोजना को खोलने के लिए सक्षम होना चाहते हैं, तो । यदि आप अपनी परियोजना में केवल कोड फ़ाइल को पकड़ने की कोशिश कर रहे हैं, तो सुनिश्चित करें कि आप PowerCollections.dll फ़ाइल भी लें (मुझे लगता है कि यह कोड फ़ाइलों के समान फ़ोल्डर में है) या आपका कोड संकलित नहीं होगा (जैसा आपने पाया है)। आपको इसके लिए एक संदर्भ जोड़ना होगा और इस लाइब्रेरी का उपयोग करने वाली कोड फ़ाइलों के शीर्ष पर आवश्यक कथन का उपयोग करना होगा (या नेमस्पेस के साथ पूरी तरह से योग्य नाम का उपयोग करें)।

using IntervalTreeLib; 

या

var myObj = new IntervalTreeLib.[WhateverClass](...); 

इसके अलावा, सुनिश्चित करें कि आप license.txt फ़ाइल पढ़ सकते हैं। यदि आप कोड का उपयोग कर रहे हैं तो आपको इसे शामिल करने की आवश्यकता हो सकती है। क्रेडिट दें जहां यह देय है।

अद्यतन:

परीक्षण परियोजना आप आ रही हैं तो समस्याओं, बस पुस्तकालय परियोजना खोलें। आदर्श रूप से आप इसे खोल सकते हैं और इसे संकलित कर सकते हैं, आउटपुट डीएलएल फाइल जो सीधे आपके समाधान में उत्पन्न होते हैं। यह तब तक आदर्श है जब तक आप लाइब्रेरी स्रोत कोड को बदलने की योजना बना रहे हों।

+0

जब मैंने csproj फ़ाइल खोलने का प्रयास किया, तो यह आगे बढ़ गया और वैसे भी .sln फ़ाइल खोली गई। और यह ओपी मुद्दों के साथ होगा। –

+0

@ जोनाथन रेनहार्ट: ठीक है तो उसके लिए एक मौजूदा समाधान जोड़ने का दूसरा तरीका यह है कि मुझे लगता है। इसे यहां स्वयं का परीक्षण नहीं कर सकता (आज सुबह मेरे लिनक्स बॉक्स पर)। –

+0

सेट अप स्वयं ही काम करता है जैसा कि इसे करना चाहिए। लेकिन चूंकि वह स्टूडियो के विभिन्न संस्करणों का उपयोग कर रहा है, इसलिए वह इसे खोल नहीं सकता है। लेकिन वह हरकत जोड़ सकता है और फिर उसे सही ढंग से डीएलएल का संदर्भ देना चाहिए था। बस संदर्भों की सूची और डीएल के पथ को देखना चाहिए। – King

0

चर्चा करते हुए कि आप Intervallib.dll का निर्माण करने में सक्षम हैं, हम इस बारे में चर्चा करेंगे कि आपको अपनी परियोजना में डीएल कैसे होना चाहिए।

अब अपने प्रोजेक्ट में, संदर्भ भाग पर राइट क्लिक करें और अपने संदर्भों में dll intervallib.dll जोड़ें। अपनी game.cs फ़ाइल में, using IntervalTreeLib;

के रूप में नामस्थान का संदर्भ है तो आपको वास्तव में dll powercollections.dll को proj निर्देशिका की बिन निर्देशिका में कॉपी करना चाहिए।

आप इस dll कॉपी चाहिए dll करने के लिए एक अप्रत्यक्ष संबंध है क्योंकि वहाँ के रूप में यह IntervalTreeLib.dll

में प्रयोग किया जाता है इन चरणों का पालन, मैं इस परियोजना पर अमल करने में सक्षम था।

संबंधित मुद्दे