2012-07-02 8 views
5

मैं libgit2sharp लाइब्रेरी का उपयोग करने की कोशिश कर रहा हूं। मेरी केवल कोडgit2.dll लोड करने में समस्याएं?

Repository repository = new Repository(@"C:\Path\To\Repo"); 

है और जब मैं इसे चलाने मैं DLL 'git2' लोड करने में असमर्थ कह कोई त्रुटि मिलती है: निर्दिष्ट मॉड्यूल नहीं पाया जा सका। तो, मैं मैन्युअल रूप से गया और libgit2sharp से git2.dll को पकड़ लिया और इसे निर्देशिका में ले जाया गया। उसके बाद एक ही प्रोग्राम चलाते समय मुझे एक और त्रुटि मिलती है: किसी प्रोग्राम को गलत प्रारूप के साथ लोड करने का प्रयास किया गया था।

इस पर शोध करते समय मुझे this post मिला और पोस्टर के लिए काम करने वाला समाधान मेरे लिए काम नहीं करता था। उस पोस्ट को एक साल पहले भी बनाया गया था और इसके लिए एक निश्चित फिक्स बनाया गया था, मैं libgit2sharp की नवीनतम शाखा का उपयोग कर रहा हूं (आईव ने पुरानी रिपॉजिटरीज को कोई बदलाव नहीं किया)

कोई विचार?

+0

.NET का कौन सा संस्करण आप लक्षित कर रहे हैं? – Cameron

+0

लक्ष्य ढांचा डिफ़ॉल्ट है, .NET Framework 4.0 क्लाइंट – Whyrusleeping

+0

इसके अलावा, 3.5 में इसे बदलने से कुछ भी नहीं बदलता – Whyrusleeping

उत्तर

2

अनुशंसित विकल्प नवीनतम LibGit2Sharp NuGet package जो सही स्थान में सब कुछ स्थापित करने का ख्याल रखना होगा स्थापित करने के लिए किया जाएगा।

हालांकि, अगर आप इसे हाथ से संभालना पसंद करते हैं, तो गिटहब भंडार में x86 और amd64git2.dll दोनों संस्करण शामिल हैं। master या vNext शाखा का चेकआउट निष्पादित करना उन्हें पुनर्प्राप्त करना चाहिए।

सावधान रहें कि LibGit2Sharp का प्रत्येक संस्करण libgit2 बाइनरी के एक विशिष्ट संस्करण के विरुद्ध काम करता है। प्रत्येक LibGit2Sharp शाखा में libgit2 सबमिशन होता है जो libgit2 को लपेटकर प्रतिबद्ध करता है।

submodule

आदेश में के लिए यह काम करने के लिए पूरी तरह से, LibGit2Sharp विधानसभा उम्मीद git2.dll बाइनरी एक विशिष्ट वृक्ष संरचना में स्थित होना।

LibGit2Sharp.dll 
|__NativeBinaries 
    |__x86 
    | |_git2.dll 
    | 
    |__amd64 
     |_git2.dll 
+0

से सही गिट लाइब्रेरी (x86 या amd64) प्राप्त करें, जो चाल है, धन्यवाद! – Whyrusleeping

+1

मैं एक VSIX प्रोजेक्ट का उपयोग कर एक वीएस एक्सटेंशन बना रहा हूं। Git2.dll फ़ाइलों को bin \ Debug | रिलीज़ निर्देशिका में कॉपी किया जा रहा था, लेकिन मेरे VSIX पैकेज में शामिल नहीं है। मैं अपने प्रोजेक्ट में मूलबिंदु \ amd64 और x86 फ़ोल्डर संरचना बनाने के लिए समाप्त हुआ, और उसके बाद git2-3f8d005.dll फ़ाइलों को शॉर्टकट के रूप में लिंक करें। शॉर्टकट गुणों में मैंने फिर VSIX प्रॉपर्टी को शामिल करने के लिए सेट किया है, और अब असेंबली को उचित फ़ोल्डर संरचना के साथ VSIX में शामिल किया गया है। यह काम करता है, लेकिन आदर्श नहीं, हर बार जब मैं LibGit2Sharp NuGet पैकेज को अद्यतन करता हूं तो मुझे शॉर्टकट पथ भी अपडेट करने की आवश्यकता होगी। – deadlydog