2015-12-25 13 views
21

में स्थापित मैं सरल परियोजना में दृश्य स्टूडियो 2015 में nuget Microsoft.VisualStudio.QualityTools.UnitTestFramework स्थापित करने का प्रयास करते हैं और इस संदेश मिला:Nugets दृश्य स्टूडियो 2015

स्थापित नहीं हो सका पैकेज 'Microsoft.VisualStudio.QualityTools.UnitTestFramework 10.0.30319.1' । आप इस पैकेज को ऐसे प्रोजेक्ट में स्थापित करने का प्रयास कर रहे हैं जो '.NETFramework, Version = v4.5.2' को लक्षित करता है, लेकिन पैकेज में उस ढांचे के साथ संगत किसी असेंबली संदर्भ या सामग्री फ़ाइलों को शामिल नहीं किया गया है। अधिक जानकारी के लिए, पैकेज लेखक से संपर्क करें।

लेकिन, जब मैं एक ही प्रोजेक्ट में विजुअल स्टूडियो 2013 में इस पैकेज को स्थापित करने का प्रयास करता हूं तो यह काम करता है।

मैं विजुअल स्टूडियो 2015 में इस न्यूजेट को कैसे स्थापित कर सकता हूं?

उत्तर

10

त्रुटि संदेश आपको बता रहा है कि आपके ढांचे के संस्करण के लिए nuget का कोई संस्करण नहीं है।

वीएस2013 में आप संभवतः परियोजना को 4.5.0 या 4.0.0 संस्करण में नेट फ्रेमवर्क में बनाते हैं।

क्या आपने अपनी परियोजना का .NET संस्करण 4.5.2 में बदलने की कोशिश की है?

+2

मैंने विजुअल स्टूडियो 2013 से 4.5.2 में अपने प्रोजेक्ट का नेट संस्करण बदल दिया और इंस्टॉल सफल हुआ। मैंने विजुअल स्टूडियो 2015 से 4.5 में अपने प्रोजेक्ट में नेट संस्करण को बदलने की भी कोशिश की और मुझे अभी भी यह त्रुटि मिली है। – ran

15

समय बीत चुका है, लेकिन यह मेरे साथ हो रहा है, और मुझे पता चला है कि इसका ढांचा संस्करण के साथ कुछ लेना देना नहीं है। त्रुटि संदेश का महत्वपूर्ण पाठ है: "... लेकिन पैकेज में कोई असेंबली संदर्भ या सामग्री फ़ाइलें नहीं हैं ..."।

दरअसल, मेरे पैकेज में Nuget के लिए कोई दृश्य सामग्री नहीं है: इसमें तीसरे पक्ष के देशी पुस्तकालयों और एक install.ps1 के साथ एक गैर पारंपरिक फ़ोल्डर है जो Xcopy कमांड के साथ एक पोस्ट बिल्ड इवेंट जोड़ता है।

एक आसान बदलाव के रूप में, बस पैकेज सामग्री फ़ोल्डर या lib में किसी भी अन्य डमी सामग्री, खाली फ़ाइल नोड (इसे करने की कोशिश नहीं), आदि में एक डमी फ़ाइल डाल

संपादित 29/5/2017

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

जैसा कि मैंने कहा, समस्या यह है कि Nuget नहीं दिख रहा है वहाँ पैकेज में किसी भी सामग्री है, लेकिन यह दो कारण हो सकते हैं: क्योंकि यह बढ़ता रहता है

  1. पैकेज वास्तव में दिखाई देने वाली सामग्री नहीं है एक स्क्रिप्ट, आदि के साथ सामग्री (जैसा कि यह मेरा मामला था), और उसके बाद कुछ डमी सामग्री को बदलाव के रूप में बनाना आवश्यक है।

  2. एक पैकेज के विनिर्देशन में एक गलती है जिसमें सामग्री होनी चाहिए (जैसा टिप्पणियों में Evgeni Nabokov का मामला था), और फिर आपको चीजों को जगह में रखने के लिए विनिर्देश को सही करना होगा।

मेरे खराब अंग्रेजी के लिए खेद है।

+0

हाँ, मुझे बिन फ़ोल्डर में dlls मिला, lib में नहीं। यही कारण था। –

+0

और डमी फ़ाइल के लिए विशेष फ़ाइल मार्कर (खाली निर्देशिका) '_._ 'का उपयोग करने के लिए बेहतर है। – derigel

+0

@derigel हाँ, यह बेहतर लगता है, मैं इसे आजमाउंगा। धन्यवाद। – SERWare

1

मुझे यह मिला और मुझे कोई समझ नहीं आया क्योंकि मैं पहले से ही फ्रेमवर्क 4.6 प्रोजेक्ट पर कोई समस्या नहीं कर रहा था और त्रुटि ने मुझे बताया कि यह फ्रेमवर्क 4.6 पर काम नहीं करेगा जो मुझे असत्य होना जानता था।

अंत में मैंने इसे एक और परीक्षण प्रोजेक्ट बनाकर, सीएस फाइलों की प्रतिलिपि बनाकर मेरी पुरानी टेस्ट प्रोजेक्ट से हल किया और फिर यूनिटटेस्टफ्रेमवर्क को NuGet के माध्यम से स्थापित किया। यह बढ़िया काम करता है।

तो कुछ ऐसा होता है कि केवल माइक्रोसॉफ्ट ही हल कर सकता है, मुझे लगता है कि फिर से शुरू करना ठीक लगता है।

1

यह तब हो सकता है जब समाधान के .NET मानक और संबंधित nuget पैकेज मेल नहीं खाते। कृपया इस लिंक को देखें: https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/ जब आप नीचे स्क्रॉल करते हैं, तो शीर्षक शीर्षक होता है: .NET मानक 2.0 में नया क्या है? उस शीर्षक के तहत, एक टेबल है। आप दोनों ढांचे और .NET मानक संस्करण से मेल खाते हैं। मैं .NET मानक 1.4 और .NET Framework 4.6.1 पसंद करता हूं। .NET मानक बनाकर, माइक्रोसॉफ्ट सभी .NET प्लेटफॉर्म पर लगातार एपीआई रखने की आवश्यकता को संहिताबद्ध कर रहा है। ऐसा लगता है, एक बार जब आप संगतता के इन स्तरों पर अपने समाधान माइग्रेट कर लेते हैं, तो "असंगतता" या प्रत्येक अद्यतन के बाद फिर से पहिया की खोज करना अतीत की याददाश्त होगी ...

0

ऐसा लगता है कि "यूनिट टेस्ट प्रोजेक्ट" बनाना "कक्षा पुस्तकालय" के बजाय समस्या हल करती है। मैंने "क्लास लाइब्रेरी" से भाग्य के साथ लड़ाई नहीं की, लेकिन "यूनिट टेस्ट प्रोजेक्ट" टेम्पलेट से एक नया निर्माण करने के लिए उस परियोजना को हटाकर माइक्रोसॉफ्ट के साथ बन गया। विज़ुअल स्टूडियो। क्वालिटीटूल। यूनिटटेस्टफ्रेमवर्क संस्करण 10.0.0.0 स्थापित।

2

टीमसिटी में अपने न्यूजेट पैकेज बनाने, स्थानीय आर्टिफैक्टरी में उन्हें प्रकाशित करने और फिर अन्य परियोजनाओं में उन पैकेजों का उपयोग करने की कोशिश करते समय मुझे यह समस्या थी।

इस मुद्दे से बचने के लिए - टीमसिटी में, बिल्डस्टेप्स ==> NuGet पैक ==> पैकेज पैरामीटर ==> विशिष्टता फाइलें जिन्हें आप nuspec फ़ाइल पर .csproj फ़ाइल चुनने के लिए चुनते हैं और टिक विकल्प "प्रोजेक्ट फ़ाइलों को .nuspec पर पसंद करते हैं "

इस तरह का पैकेज आयात करने के लिए ठीक होगा और वीएस से कोई और शिकायत नहीं होगी।

0

मैंने पाया कि डायनामिकइंटरोप 2.0.8.1.nupkg में 'lib \ netstandard1.2' फ़ोल्डर में डीएलएल फ़ाइल है। मैंने फ़ोल्डर नाम को lib \ net40 में बदल दिया है और पैकेज ठीक स्थापित होगा (आईएम वीएस2013 का उपयोग कर)। इसके अलावा: .nupkg सिर्फ एक .zip फ़ाइल है, इसलिए कोई भी ज़िप उपकरण आपको सामग्री में हेरफेर करने देता है।

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