2012-02-14 19 views
7

मैंने अपने समाधान में पुनर्स्थापना पैकेज विकल्प सक्षम किया है, इसलिए जब मैं सीआई सर्वर पर कोड अपलोड करता हूं तो यह उन सभी संकुल को अद्यतन करता है जिन्हें इसे सही तरीके से बनाने की आवश्यकता होती है, और यह बहुत अच्छा काम करता है। अब समस्या यह है कि मेरी स्थानीय मशीन पर, बिल्ड को शुरू करने में काफी समय लगता है क्योंकि "पैकेज अपडेट करना" है। क्या पुनर्स्थापन पैकेज को केवल रिलीज बिल्ड में सक्षम करने का कोई तरीका है?डीबग में NuGet पुनर्स्थापना पैकेज को रोकें केवल

मैं false और true साथ रिलीज/डिबग वर्गों के लिए .csproj फ़ाइलों में <RestorePackage> संपत्ति स्थानांतरित करने के लिए कोशिश की है, लेकिन NuGet विशेषता अद्यतन करता है जब एक खुला NuGet कंसोल और true करने के लिए दोनों को रीसेट करता है; रिलीज सेक्शन में केवल संपत्ति को शामिल करने की कोशिश की, लेकिन फिर NuGet इसे वैश्विक अनुभाग में जोड़ता है ... इसलिए मुझे यह पसंद नहीं आया कि मैं इसे जिस तरह से चाहता हूं ...

कोई सलाह?

उत्तर

15

आप शायद अब तक इस जवाब में कामयाब रहे, लेकिन आप

पालन करने की आवश्यकता है, तो उसके बाद नहीं इन चरणों का कर रहे हैं ठीक है, जहां आपके समाधान फ़ाइल Windows के भीतर है .nuget नाम का एक फ़ोल्डर होना चाहिए। या तो इस फ़ोल्डर का नाम बदलें या हटाएं।

अब प्रत्येक .csproj या नोटपैड में .vbproj फ़ाइल या किसी भी पाठ संपादक खोलने के लिए और इन पंक्तियों के

<RestorePackages>true</RestorePackages> 
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" /> 

महत्वपूर्ण हिस्सा निकाल रहा है/.nuget फ़ोल्डर का नाम बदलने को हटा दें। यह अब पूरी तरह से पैकेज बहाल अक्षम करना चाहिए।

संपादित करें: चुनिंदा अक्षम पैकेज डीबग के लिए पुनर्स्थापित करने के लिए Nuget.settings.targets फ़ाइल को संपादित और निम्न पंक्ति को संशोधित

<RestorePackages Condition="$(RestorePackages) == '' AND '$(Configuration)' == 'Debug'">false</RestorePackages> 

<RestorePackages Condition="$(RestorePackages) == ''">false</RestorePackages> 

करने के लिए Nuget.settings.targets फ़ाइल है बनाता है .nuget फ़ोल्डर के तहत जो आपके समाधान फ़ाइल के समान फ़ोल्डर में होना चाहिए।

+0

ठीक है, मैं पैकेज पुनर्स्थापना को पूरी तरह से हटाना नहीं चाहता, मैं बस इसे डीबग बिल्ड के लिए अक्षम करना चाहता हूं .... मैं नहीं चाहता कि जब मैं अपने स्थानीय/देव कंप्यूटर में हूं, लेकिन मैं इसे चलाने के लिए नहीं चाहता हूं, लेकिन मैं यह संकुल लाने के लिए चाहते हैं और जब मैं इसे सीआई सर्वर पर अपलोड करता हूं। – Jaime

+0

धन्यवाद आपके संपादन सुझाव ने किया था। – Jaime

+0

मुझे लगता है कि यह एक या - $ (RestorePackages) == '' या $ (कॉन्फ़िगरेशन) == 'डीबग' के बजाय अंतिम उदाहरण में होना चाहिए। –

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