14

मैंने अपने वर्तमान प्रोजेक्ट में ServiceStack का उपयोग करने की कोशिश की लेकिन पाया कि जारी की गई द्विआधारी नाम मजबूत नहीं थे इसलिए मैं इसे बॉक्स से बाहर नहीं कर सका।ओपन-सोर्स प्रोजेक्ट्स की बाइनरी साइनिंग

it's virally toxic and hinders binding, upgrading, development, deployment, etc.

mythz बहुत संक्षिप्त तो मैं उसे और अधिक और यहाँ पूछ परेशान करने के लिए नहीं करना चाहता था था: जब GitHub पर पूछ "क्यों" मैं निम्नलिखित जवाब मिला है। मैं ऑटोमैपर, एनयूनीट, एमओक, लॉग 4नेट, निनजेक्ट इत्यादि जैसे कई ओपन-सोर्स .NET प्रोजेक्ट्स का उपयोग करता हूं और उनकी रिलीज सभी मजबूत नाम हैं। एसओ पर, यहां similar question मिला, लेकिन यह मेरी मदद नहीं करता है। क्या यह ओएसएस में सामान्य अभ्यास है? क्यों हस्ताक्षरित और हस्ताक्षरित दोनों बाइनरी जारी नहीं करते?

उत्तर

6

कारण यहाँ पर किसी मौजूदा चर्चा क्यों सशक्त नामकरण मुक्त स्रोत परियोजनाओं के लिए एक बुरा विचार है:

http://haacked.com/archive/2012/02/16/changing-a-strong-name-is-a-major-breaking-change.aspx

मैं:

https://groups.google.com/forum/?fromgroups#!topic/getglimpse-dev/pXXazMOOdjE

यहाँ का उपयोग करने से एक बुरा सपना कहानी है मैं व्यक्तिगत रूप से 2 टीमों में रहा हूं जो लॉग 4नेट की 2 पीढ़ियों से पीड़ित हैं, जिन्होंने उसी परियोजना में लॉग 4नेट के 2 अलग-अलग मजबूत नामित संस्करणों का संदर्भ देने वाली असेंबली का उपयोग करने का प्रयास किया है - इस काम को करने की कोशिश कर रहे बहुत सारे समय और प्रयासों को बर्बाद करना मजेदार नहीं है, न ही यह कुछ है जो हम खुद को अधीन करने या हमारे सभी उपयोगकर्ताओं को जनादेश देने की योजना बना रहे हैं।

उपयोगकर्ता जो मजबूत नाम वाले संस्करण चाहते हैं public ServiceStack repos के अपने स्वयं के क्लोन/कांटा पर हस्ताक्षर करने के लिए स्वतंत्र हैं।

यदि इसकी मांग है, तो हम अपने पुस्तकालयों के अपने "आधिकारिक तौर पर गाए गए" वाणिज्यिक संस्करणों को बनाए रखने पर विचार करेंगे।

+2

लिंक के लिए धन्यवाद, काफी रोचक लेकिन मुझे यह ध्यान रखना होगा कि लोग हस्ताक्षर और संस्करण मिश्रण करते हैं - अलग-अलग चीजें! हालांकि .NET विश्व हस्ताक्षर में मजबूत नाम का हिस्सा है, नए निर्माण को जारी करते समय संस्करण को बदलने की आवश्यकता नहीं है (लॉग 4नेट संस्करण परिदृश्य; इसके बजाय वे फ़ाइल संस्करण का उपयोग कर सकते हैं और आईएल संस्करण को समान रख सकते हैं)। मुझे बिना किसी आईएल संस्करण के साथ हस्ताक्षरित हस्ताक्षरित बाइनरी जारी करने में कोई समस्या नहीं दिखाई देती है और बढ़ी हुई आईएल संस्करण के साथ हस्ताक्षर किए गए हैं। सभी खुश होने के विकल्प हैं इसलिए जब आप "आधिकारिक तौर पर हस्ताक्षरित" बाइनरी बनाए रखने पर पुनर्विचार करते हैं तो मेरा +1 यहां है। – UserControl

+2

आप 'एथेनिकोड' साइन असेंबली नहीं कर सकते हैं जिनके पास गैर-मजबूत नाम निर्भरताएं हैं। निजी तौर पर, यह एक दुःस्वप्न है * नहीं * मजबूत नामित असेंबली तक आसानी से पहुंच है और बड़े पैमाने पर तैनाती में बाधा डालता है। – Robin

+3

मुझे एहसास है कि मैं यहां पार्टी के लिए थोड़ा देर हो चुकी हूं, लेकिन मुझे वास्तव में असेंबली पर हस्ताक्षर करने में समस्या दिखाई नहीं दे रही है। यदि आप एक ही कुंजी का उपयोग करते रहें तो किसी समस्या पर हस्ताक्षर करना किस तरह से है? असेंबली रीडायरेक्ट संस्करण समस्या को हल नहीं करते हैं? – dabide

5

मुझे लगता है कि यह डेवलपर्स पर निर्भर है। पेशेवर स्पष्ट हैं - कोई भी मजबूत नाम के साथ असेंबली ले सकता है और किसी भी पर्यावरण में इसका उपयोग कर सकता है। उस विशेष मामले में मेरा मतलब हस्ताक्षरित या हस्ताक्षरित असेंबली से है। विपक्ष -?

मुझे लगता है कि यह द्विआधारी पर हस्ताक्षर करने के लिए एक दयालु सज्जन नियम होना चाहिए।

जॉन स्कीट ने इसी तरह के question पर उत्तर दिया और उनकी राय काफी अनावश्यक है।

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