2011-09-10 14 views
10

के माध्यम से Nuget DLLs को शामिल करें मैं एक नई एएसपी.नेट एमवीसी परियोजना के साथ जीआईटी का उपयोग कर रहा हूं। मुझे लगता है मैं (यानी की अनदेखी नहीं है) DLLs निम्नलिखित की तर्ज पर कुछ जोड़ने के लिए मेरी NUGET संकुल फ़ोल्डर में शामिल करना चाहते हैं मेरी gitignore फ़ाइल में एक पंक्ति DLLsहाल ही में गिटिग्नोर

*.dll 

अनदेखी करने के लिए है

!/packages/*.dll 

मुझे जिस समस्या का सामना करना पड़ रहा है वह यह है कि सभी nuget संकुल समान रूप से बनाए जाते हैं और, प्रश्न में पैकेज के आधार पर, डीएलएल को पथ पदानुक्रम में स्तरों की मनमाना संख्या निहित किया जा सकता है। ऐसा लगता है कि मैं बस की तर्ज पर एक पुनरावर्ती समाधान की जरूरत है:

!/packages/**/*.dll 

!/packages/**/* 

मैं अभी तक एक समाधान है कि mysysgit के माध्यम से काम करेंगे (या Git के किसी भी विंडोज़ वितरण) नहीं मिला है।

क्या कोई इस काम को करने का तरीका जानता है ???

उत्तर

19

इसमें *.dll रख कर अपने शीर्ष स्तर gitignore अकेले छोड़ दें।

पैकेज निर्देशिका में .gitignore फ़ाइल बनाएं और इसमें !*.dll डालें।

+0

एक इलाज किया। धन्यवाद! –

10

विचार करने का एक अन्य विकल्प आपके रिपोजिटरी में आपके NuGet dlls को शामिल नहीं करता है और इसके बजाय केवल उन्हें पहली बार डाउनलोड करें जब आप अपनी परियोजना बनाते हैं। यह हम अपने सभी NuGet निर्भरताओं के साथ करते हैं।

अद्यतन

Nuget मैन्युअल रूप से अपने स्वयं के निर्माण की घटनाओं बनाए बिना इस संभालती है। इस पृष्ठ पर विवरण देखें: http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages


मूल उत्तर:

हम अपने समाधान के तहत एक उपकरण फ़ोल्डर में NuGet.exe आवेदन कर दिया, और उसके बाद निम्न के लिए हमारी परियोजना पूर्व निर्माण जोड़ने घटना।

"$(SolutionDir)Tools\NuGet.exe" install "$(ProjectDir)packages.config" -o "$(SolutionDir)Packages" 

पहली बार हमने एप्लिकेशन यह निर्भरता के सभी डाउनलोड करेगा निर्माण, लेकिन बाद में बनाता है के साथ, NuGet बहुत चालाक देखने के लिए कि वे पहले से ही सही संस्करण पर मौजूद हैं और उन्हें छोड़ देता है।

+0

यह एक दिलचस्प समाधान है - यह आपके लिए क्या समस्याएं हल करता है? – vcsjones

+1

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

+3

अद्यतन: Nuget Nuget पैकेज पुनर्स्थापना के साथ इस ओओबी का समर्थन करता है। – vcsjones