2017-08-08 7 views
35

किसी प्रोजेक्ट को अपग्रेड करने के दौरान नहीं किया जा सकता है जो .NET कोर 1.0 या 1.1 पर ठीक से चल रहा है और .NET कोर 2.0 (netcoreapp2.0) पर लक्ष्य ढांचे को अद्यतन करने का कारण बनता है निम्न त्रुटि के साथ विफल:.NET कोर 2.0 में अपग्रेड करना: PackageTargetFallback और AssetTargetFallback का उपयोग

error NU1003: PackageTargetFallback and AssetTargetFallback cannot be used together. Remove PackageTargetFallback(deprecated) references from the project environment. 

इस त्रुटि के लिए कारण क्या है और यह कैसे परियोजना का निर्माण फिर से बनाने के लिए हल किया जा सकता?

उत्तर

62

.NET कोर 1.0 और 1.1 में, PackageTargetFallback सेट करने के लिए आवश्यक था जो .NET कोर पर काम करने के लिए ज्ञात संकुलों का संदर्भ देते हैं लेकिन आधिकारिक तौर पर इसका समर्थन नहीं करते हैं - उदा। विरासत dotnet फ्रेमवर्क moniker के लिए बनाया पीसीएल पुस्तकालयों या पुस्तकालयों।

इस के कारण

, परियोजना (.csproj, .fsproj, ...) के लिए एक लाइन के लिए इसी तरह शामिल होंगे:

<PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wp8+wpa81;</PackageTargetFallback> 

ज्यादातर मामलों में, इस लाइन बस हटाया जा सकता है और इस परियोजना क्योंकि बनाने चाहिए। नेट कोर 2.0 पहले से ही AssetTargetFallback को net461 होने के लिए परिभाषित करता है - जिसका अर्थ है कि .NET Framework 4.6.1 या उच्चतम के साथ संगत कोई भी NuGet पैकेज अतिरिक्त कॉन्फ़िगरेशन के बिना उपयोग किया जा सकता है।

इस का परिचय तो अधिक निर्माण/त्रुटियों बहाल, करने के लिए लाइन बदलने के लिए: बदलाव का कारण

<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback> 

कि PackageTargetFallback पदावनत माना जाता है और AssetTargetFallback जो केवल थोड़ा अलग बर्ताव करता है के साथ प्रतिस्थापित किया जाना चाहिए है।

टूलींग में तोड़ने परिवर्तन यह है कि netcoreapp2.0 और netstandard2.0 स्वचालित रूप से AssetTargetFallback जो परियोजना फ़ाइल में परिभाषित किसी भी PackageTargetFallback मूल्य का विरोध करता सेट है।

+7

धन्यवाद, मैंने संपादक में csproj खोला और तत्व को पूरी तरह से सुझाए गए तत्व को हटा दिया और यह ठीक काम किया। – amassani

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