c# - NuGet पैकेज मैनेजर: 'AutoMapper' में पहले से ही 'Microsoft.CSharp' के लिए एक निर्भरता परिभाषित है।




visual-studio-2012 (7)

CSharp और AutoMapper दोनों को हटा दिया। CSharp (4.0.0.0) को पहले इंस्टाल किया और फिर ऑटोमैपर (6.1.1.0) जोड़ा। इससे मेरे लिए समस्या का समाधान हो गया।

मैं Visual Studio Premium 2012 पर NuGet का उपयोग कर प्रोजेक्ट के लिए एक निर्भरता के रूप में AutoMapper को जोड़ने का प्रयास कर रहा हूं, लेकिन यह विफल रहता है।

इसे कहते हैं:

कार्रवाई विफल
'AutoMapper' में पहले से ही 'Microsoft.CSharp' के लिए निर्भरता परिभाषित है।

मैं अन्य निर्भरताएं जोड़ने में सक्षम हूं।

मैं वीएस 2012 के लिए पैकेज मैनेजर के अंतिम संस्करण का उपयोग कर रहा हूं:

NuGet पैकेज मैनेजर 2.8.60318.667

किसी भी विचार मुझे क्या जांचना चाहिए?


VS2013 पर मेरा भी यही मुद्दा था। मुझे वीएस २०३ अपडेट ५ में अपडेट करना था और वीएस २०३ के लिए नवीनतम डग डिस्ट्रॉक्ट https://dist.nuget.org/visualstudio-2013-vsix/v2.12.0/NuGet.Tools.vsix

एक बार जो हो गया, मैंने Visual Studio को रिबूट किया। उसके बाद मैं ऑटोमैपर 5.0.2 पैकेज का उपयोग करने में सक्षम था


ऑटोमैपर 6.0.2 - nuget 2.8.8 यह त्रुटि देता है। यह काम पाने के लिए 3.4.4 को अद्यतन करने की आवश्यकता है।


मैंने NuGet.exe को अपडेट करने की आवश्यकता समाप्त की, जो समाधान में शामिल करने में सक्षम था, जो चलकर NuGet पैकेज बनाने में सक्षम था:

nuget.exe update -self


यह ऑटोमैकर पैकेज और आपकी परियोजना द्वारा उपयोग किए जाने वाले .NET संस्करण के बीच एक बेमेल जैसा दिखता है। क्या आप .NET संस्करण की पुष्टि कर सकते हैं जो आपकी परियोजना उपयोग कर रही है?


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

VS2017 के साथ खोलने के बाद, मैं बिना किसी त्रुटि के AutoMapper स्थापित करने में सक्षम था।


समस्या यह है कि आपका NuGet पैकेज मैनेजर बहुत पुराना है। आपको AutoGapper 5.0.1 NuGet पैकेज का उपयोग करने वाले नए .NETStandard फ्रेमवर्क का समर्थन करने के बाद से NuGet 2.12 की आवश्यकता है।

AutoMapper में एक समूह निर्भरता है जो .NETStandard का लक्ष्य ढांचा निर्दिष्ट करता है। चूंकि NuGet Package Manager का आपका संस्करण बहुत पुराना है, इसलिए यह इस लक्ष्य ढाँचे को नहीं पहचानता है और इसे किसी अज्ञात लक्ष्य ढाँचे में परिवर्तित कर देता है और आप डुप्लीकेट ढाँचों के साथ समाप्त हो जाते हैं। क्योंकि उस NuGet पैकेज में .NETStandard का उपयोग कुछ ही बार किया जाता है। यह त्रुटि का कारण बनता है:

'AutoMapper' already has a dependency defined for 'Microsoft.CSharp'

दुर्भाग्य से NuGet 2.12 विजुअल स्टूडियो 2012 के लिए उपलब्ध नहीं है, लेकिन विजुअल स्टूडियो 2013 के लिए उपलब्ध है।

इसलिए या तो आपको Visual Studio 2013 या इसके बाद के संस्करण को अपडेट करने की आवश्यकता है, या आपको पुराने AutoMapper NuGet पैकेज का उपयोग करना होगा जो .NETStandard का समर्थन नहीं करता है।





automapper