नेट लाइब्रेरी को लाइब्रेरी पोर्ट करना। मुझे कैसे पता चलेगा कि कौन से nuget संदर्भ 'पूर्ण' हैं। नेट कोर (और इसलिए लिनक्स / मैक संगत) - नेट-कोर

मुझे वर्तमान में एक कोड पोर्ट करने का काम सौंपा गया हैपुस्तकालय .NetCore को। मौलिक रूप से, यह काफी सुचारू रूप से चल रहा है लेकिन एक चीज है जो मुझे चिंतित कर रही है और वह है प्लेटफॉर्म की स्वतंत्रता को बनाए रखना।

कोर को मैक और लिनक्स पर चलाने के लिए डिज़ाइन किया गया है ताकि मैंयह सुनिश्चित करना चाहते हैं कि लाइब्रेरी मैक और लिनक्स पर भी चलेगी जब मैं काम कर रहा हूँ। , System.Net.Http, System.Threading.Thread, आदि)

स्पष्ट रूप से यह "टी विंडोज पर एक समस्या है, लेकिन मुझे आश्चर्य है कि अगर यह समस्या का कारण होगा तो क्या कहेंगे, लिनक्स को लक्षित करने वाले किसी व्यक्ति को मेरे पुस्तकालय का संदर्भ शामिल करना था?"

अगर यह एक समस्या नहीं है तो बहुत अच्छा है लेकिन अगर यह है तो मुझे कैसे पता चलेगा कि मल्टी-प्लेटफॉर्म लाइब्रेरी में कौन से नगेट पैकेज ठीक होंगे? (जैसे कि यह केवल एस्पेनेटकोर हैं जो क्रॉस-प्लेटफॉर्म का काम करेंगे?)

उत्तर:

उत्तर № 1 के लिए 1

सिस्टम। * पैकेज (आमतौर पर) से हैं https://github.com/dotnet/corefx, और 99.5% उपयोग के मामले macOS और (समर्थित) लिनक्स (वितरण) पर काम करने जा रहे हैं, जैसा कि वे विंडोज पर करते हैं।

क्या आप वहां मौजूद हैं कर रहे हैं ऐसे मामले जहां सिस्टम।* पैकेज डॉन "टी वे जिस तरह से काम करते हैं" आप उनसे उम्मीद करते हैं। मुख्य रूप से यह कई बार आता है कि .NET विंडोज व्यवहार को लपेटने के लिए सुविधा एपीआई जोड़ रहा है। इसलिए, एक रजिस्ट्री कुंजी को पढ़ना, उदाहरण के लिए, "टी वर्क (और यहां तक ​​कि भविष्य में भी जहां रजिस्ट्री एपीआई काम करता है, यह निश्चित रूप से जीता है" यह एक वैध छत्ते द्वारा समर्थित है, इसलिए अस्पष्ट मान पढ़ने से कुंजी नहीं मिलेगी रिपोर्ट)। ज्यादातर जब एपीआई एक "लिनक्स / मैकओएस पर काम करने वाला नहीं होता है" तो इसे फेंक देंगे PlatformNotSupportedExceptionके बजाय, अप्रत्याशित / गलत परिणाम के कुछ प्रकार के उत्पादन।

तो, जब तक आप "क्या कर रहे हैं" महसूस नहीं करते हैंविशेष रूप से "विंडोज-वाई", एक नेटस्टैंडर्ड * या नेटकोरैप * * आरआईडी से सब कुछ बस काम करना चाहिए। और अगर यह "t" नहीं है, तो आप हमेशा corefx github प्रोजेक्ट में एक समस्या दर्ज कर सकते हैं।


संबंधित सवाल
सबसे लोकप्रिय