2012-11-07 33 views
11

पर संकुल को पुनर्स्थापित नहीं कर रहा है। मैं अपना स्रोत कोड वॉल्ट से टीएफएस तक ले जा रहा हूं, माइग्रेशन या कुछ भी परेशान नहीं कर रहा हूं, सिर्फ वॉल्ट में नवीनतम प्राप्त कर रहा हूं और इसे टीएफएस में जोड़ रहा हूं।NuGet Package Restore

समाधान में कई परियोजनाएं हैं, और प्रत्येक में कम से कम एक NuGet पैकेज है। मैं पैकेज पुनर्स्थापना फिर से काम करने की कोशिश कर रहा हूँ। यह वॉल्ट में काम करता था (लेकिन जिस तरह से इसे माना जाता था)। मैं थोड़ी देर के अंत में था, और यह पहले काम नहीं करता था, इसलिए मैंने प्रत्येक प्रोजेक्ट के लिए packages.config के खिलाफ nuget.exe चलाने के लिए प्री-बिल्ड इवेंट जोड़ा।

टीएफएस बिल्ड सेवा इसके बारे में शिकायत करती है, इसलिए मैं इसे "सही" काम करने की कोशिश कर रहा हूं।

  1. मैंने विजुअल स्टूडियो टूल्स मेनू में विकल्प सेट किया है।
  2. मैंने NuGetEnablePackageRestore स्थापित किया है और ठीक चलाया है।
  3. मैंने सत्यापित किया है कि संकुल निर्देशिका स्रोत नियंत्रण है, लेकिन खाली है।
  4. मैं सत्यापित किया है परियोजना फ़ाइलें कि प्रत्येक निम्न शामिल हैं:
<RestorePackages>true</RestorePackages> 
<Import Project="$(SolutionDir)\.nuget\nuget.targets" /> 

नैदानिक ​​स्तर शब्दाडंबर के साथ बिल्डिंग पता चलता है कि प्रत्येक परियोजना के उन गुणों का मूल्यांकन करता है, लेकिन nuget.targets में RestoreCommand कभी नहीं है मार डाला।

कोई विचार?

मैं इन कड़ियों से समाधानों को लागू करने का प्रयास किया:

  1. nuget - package restore not working
  2. NuGet Package Restore Not Working - मैं वहाँ स्पष्टीकरण के लिए पूछ पर एक प्रश्न/टिप्पणी पोस्ट ... किया
  3. http://nuget.codeplex.com/workitem/1879

संपादित करें

विज्ञापन धीरे-धीरे, मैंने पाया है कि निर्माण के दौरान RestoreCommand संपत्ति का मूल्यांकन किया जा रहा है। नैदानिक ​​शब्दाडंबर पता चलता है:

RestoreCommand = (set EnableNuGetPackageRestore=true) && "C:\Source\Kiersted Direct And Related\Direct\Kiersted\.nuget\nuget.exe" install "packages.config" -source "@(PackageSource)" -o "C:\Source\Kiersted Direct And Related\Direct\Kiersted\packages" 

उत्तर

10

मैं इसे समझ से बाहर है, और मैं इस सवाल का जवाब मिला: MSBuild not running BuildDependsOn tasks from an imported project

समस्या (निदान शब्दाडंबर निर्माण उत्पादन के माध्यम से देखने के बाद) हो गया था कि BuildDependsOn सेटिंग हो रही थी अन-सेट । मेरी परियोजना फाइलों में प्रत्येक का आयात विवरण

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

लेकिन यह कथन एक्सएमएल पेड़ की शुरुआत में था। स्पष्ट रूप से Microsoft.CSharp.targets के लिए आयात उस आयात में हस्तक्षेप कर सकता है और इस प्रकार BuildDependsOn।

मेरा समाधान nuget.targets को Microsoft.CSharp.targets आयात के नीचे आयात करने के लिए स्थानांतरित करना था। अब सब कुछ खूबसूरती से बनाता है।

+1

जानकारी के लिए धन्यवाद। हालांकि, मेरा आयात विवरण पहले से ही Microsoft.CSharp आयात के बाद है और मुझे एक ही त्रुटि मिल जाएगी। मैं खुदाई रखूंगा और देख रहा हूं कि यहां क्या हो रहा है। –

+1

अपने बिल्ड आउटपुट में, डायग्नोस्टिक निर्दिष्ट करने का प्रयास करें। यह लॉगिंग की एक बड़ी मात्रा का उत्पादन करता है, लेकिन समस्या कहीं कहीं है। इस तरह मैंने अपना पता लगाया। – CodeWarrior

+0

मैं इसे एक चेतावनी के रूप में देख रहा हूं: सी: \ विंडोज \ माइक्रोसॉफ्ट.NET \ Framework64 \ v4.0.30319 \ Microsoft.Common.targets (1605): इस संदर्भ को हल नहीं कर सका। विधानसभा "MongoDB.Bson" का पता नहीं लगा सका। यह सुनिश्चित करने के लिए जांचें कि असेंबली डिस्क पर मौजूद है। यदि यह संदर्भ आपके कोड द्वारा आवश्यक है, तो आप संकलन त्रुटियां प्राप्त कर सकते हैं। सी: \ विंडोज \ माइक्रोसॉफ्ट.NET \ Framework64 \ v4.0.30319 \ Microsoft.Common.targets (1605): इस संदर्भ को हल नहीं कर सका। असेंबली "MongoDB.Driver" का पता नहीं लगा सका। यह सुनिश्चित करने के लिए जांचें कि असेंबली डिस्क पर मौजूद है। यदि यह संदर्भ आपके कोड द्वारा आवश्यक है, तो आपको संकलन त्रुटियां मिल सकती हैं –