मैं एक पुस्तकालय परियोजना पलायन नेट स्टैंडर्ड 1.1 समर्थन करने के लिए दृश्य स्टूडियो का उपयोग कर की प्रक्रिया में हूँ 2017वीएस 2017 में न्यूनतम निर्भरताओं के साथ .NET मानक NuGet पैकेज कैसे बनाएं?
मैं एक एकल NuGet पैकेज के रूप में परियोजना है कि दोनों .नेट फ्रेमवर्क 4.5+ लक्ष्य बना सकते हैं जारी करने के लिए उम्मीद कर रहा था और .NET कोर, यूडब्लूपी, आदि
हालांकि, जब मैं .NET Framework परियोजनाओं में परिणामी पैकेज को स्थापित करने का प्रयास करता हूं, तो पैकेज निर्भरताओं की एक बड़ी सूची उत्पन्न होती है जिसमें .NET मानक (नीचे देखें) में परिभाषित सभी संकुल शामिल होते हैं:
मैं समझता हूं कि ये सभी असेंबली हैं जो .NET मानक 1.1 विनिर्देश के हिस्से के रूप में परिभाषित हैं। हालांकि, मेरे विशिष्ट प्रोजेक्ट को वास्तव में उनमें से केवल एक छोटे से सबसेट की आवश्यकता होती है, और यह निर्भरता सूची उनकी परियोजनाओं में पैकेज स्थापित करने के लिए बेहद भ्रमित हो जाएगी।
मैंने similar question के उत्तर का पालन करने का प्रयास किया जहां परियोजना प्रोजेक्ट द्वारा आवश्यक सटीक निर्भरताओं को संदर्भित करने के लिए परियोजना विनिर्देश को बदलने की सिफारिश थी।
हालांकि, उत्तर पुराने प्रोजेक्ट.जेसन प्रारूप के संदर्भ में था, जिसे अब वीएस 2017 में नए .csproj प्रारूप द्वारा हटा दिया गया है। मैंने हटाकर .NET मानक 1.1 मेटापैकेज पर निर्भरता को हटाने की कोशिश की <TargetFramework>
निर्देश लेकिन मैं केवल निर्माण को तोड़ने में कामयाब रहा और विशेष रूप से केवल निर्भरताओं को जोड़ने के लिए कोई रास्ता नहीं ढूंढ पाया।
अधिकतम प्लेटफार्म संगतता के लिए पुस्तकालयों को .NET मानक में ले जाने का वादा बेहद आकर्षक है, लेकिन "क्लासिक" .NET Framework को लक्षित करने वाली परियोजनाओं को निर्भर करने के लिए अनुशंसित तरीका क्या है, उनकी परियोजनाओं को "प्रदूषित" नहीं मिला इन सभी निर्भरताओं?
आपको अपनी NuGet परिभाषा फ़ाइल में प्रत्येक प्लेटफॉर्म के लिए निर्भरताओं को परिभाषित करने की आवश्यकता है। ओएनटीएलआर 4 रनटाइम जैसे ओपन सोर्स प्रोजेक्ट पढ़ें। –
@LexLi हां, मुझे इस समाधान के बारे में पता है, लेकिन .NET मानक का पूरा बिंदु यह था कि आप पीसीएल के दुःस्वप्न के बिना सभी प्लेटफार्मों में एक एकल डीएलएल वितरित कर सकते थे। – glopes
आप इसे वास्तविक बनाने के लिए आवश्यक प्रयासों को स्पष्ट रूप से कम से कम समझते हैं। मेरा विचार यह है कि सभी प्लेटफार्मों के लिए .NET मूल अंततः इन सभी को हल करेगा, भले ही कितने डीएल हैं, लेकिन यह पर्याप्त तेज़ी से नहीं आएगा। –