मैं ValueTuple
.net फ्रेमवर्क परियोजनाओं के पैकेज संदर्भ के रूप में जोड़ने की सलाह नहीं दूंगा । जैसा कि आप जानते हैं कि यह असेंबली 4.7 .NET फ्रेमवर्क से उपलब्ध है।
कुछ परिस्थितियाँ हो सकती हैं जब आपकी परियोजना ValueTuple
पैकेज फ़ोल्डर के बजाय .NET फ्रेमवर्क फ़ोल्डर से सभी लागतों को शामिल करने का प्रयास करेगी और यह कुछ असेंबली त्रुटियों का कारण नहीं बन सकती है।
कंपनी में आज हमें यह समस्या थी। हमारे पास 2 परियोजनाओं के साथ समाधान था (मैं इसकी देखरेख करता हूं):
Lib
ValueTuple सहित और Web
उपयोग कर रहा था Lib
। यह पता चला कि किसी अज्ञात कारण से Web
जब करने के लिए संकल्प पथ करने की कोशिश कर ValueTuple
रहा था HintPath
.नेट फ्रेमवर्क निर्देशिका में और गलत संस्करण ले रहा था। उस वजह से हमारा एप्लिकेशन क्रैश हो रहा था। ValueTuple
में परिभाषित नहीं किया गया था .csproj
की Web
है और न ही HintPath
है कि विधानसभा के लिए। समस्या बहुत अजीब थी। आम तौर पर यह पैकेज फ़ोल्डर से असेंबली की प्रतिलिपि बनाता है। यह समय सामान्य नहीं था।
मेरे लिए System.*
पैकेज संदर्भों को जोड़ना हमेशा जोखिम भरा होता है । वे अक्सर टाइम-बम की तरह होते हैं। वे शुरुआत में ठीक हैं और वे सबसे खराब क्षण में आपके चेहरे पर विस्फोट कर सकते हैं। मेरे अंगूठे का नियम: यदि उनके लिए कोई वास्तविक आवश्यकता नहीं है, तो .NET फ्रेमवर्क केSystem.*
लिए Nuget पैकेज का उपयोग न करें ।
हमने प्रोजेक्ट के अंदर फ़ाइल ValueTuple
में मैन्युअल रूप से जोड़कर हमारी समस्या का समाधान किया ।.csproj
Web