2009-05-28 11 views
11

सी # 2008 एसपी 1सी # संशोधन संख्या का प्रबंधन करने के लिए प्रभावी तरीका

मुझे आश्चर्य है कि संशोधन संख्या को संभालने का सबसे अच्छा तरीका क्या है।

मैंने हमेशा सोचा था कि आमतौर पर केवल 3 संख्या होती है। (मेजर, माइनर, और बग फिक्स)।

हालांकि, मुझे आश्चर्य है कि बिल्ड नंबर क्या है और संशोधन संख्या क्या है।

उदाहरण के लिए, अतीत में मैंने आमतौर पर केवल 3 संख्याओं का उपयोग किया है। मैं कुछ मामूली परिवर्तन या एक बग फिक्स है मैं तीसरे नंबर (बग फिक्स) में वृद्धि होगी।

क्योंकि मैं इसके लिए नया हूं। पेशेवर दुनिया में आम तौर पर क्या किया जाता है?

किसी भी सलाह के लिए बहुत धन्यवाद,

मेरी AssemblyInfo फ़ाइल में मैं निम्नलिखित है:

// Version information for an assembly consists of the following four values: 
// 
//  Major Version 
//  Minor Version 
//  Build Number 
//  Revision 
// 
// You can specify all the values or you can default the Build and Revision Numbers 
// by using the '*' as shown below: 
// [assembly: AssemblyVersion("1.0.*")] 
[assembly: AssemblyVersion("1.0.2.*")] 
[assembly: AssemblyFileVersion("1.0.0.0")] 

// 1.0.2 Added feature for detecting if a sound card is installed. 

उत्तर

1

आपके सभी सुझावों के लिए धन्यवाद।

मैंने निम्नलिखित का उपयोग करने का निर्णय लिया है।

मेरे प्रोजेक्ट में निम्न संस्करण संख्या है: 1.0.2.20। 1.: बड़े बदलाव 0.: माइनर परिवर्तन 2.: बग सुधार 20: सबवर्सन संशोधन संख्या

तो मैं

[assembly: AssemblyVersion("1.0.2.20")] 

कोई सुझाव पर मेरे assemblyinfo.c फ़ाइल में निम्न को बदल दिया है यह विचार, मुझे सुनकर खुशी होगी।

बहुत धन्यवाद,

+2

बग फिक्स की संख्या को ट्रैक करना मुश्किल होगा यदि आपके पास एक ही कोड पर काम कर रहे कई अलग-अलग प्रोग्रामर हैं। –

8

आज़माएं:

http://autobuildversion.codeplex.com/

+0

हम एक समान दृष्टिकोण का उपयोग करते थे लेकिन पाया कि इस विधि के साथ दीर्घकालिक प्रबंधन वास्तव में काफी कठिन है। एक के लिए यह निरंतर एकीकरण के साथ अच्छी तरह से काम नहीं करता है और वृद्धिशील बिल्डों पर विनाश को खत्म कर देता है। आखिरकार हमने एसवीएन संस्करण संख्या का उपयोग हमारे निर्माण संख्या के रूप में करने के लिए स्विच किया जो प्रकाशन/बग ट्रैकिंग बिंदु से अधिक समझ में आया। –

4

आप वर्ज़निंग पर विचार करेंगे कि आपके असेंबली और फाइल अलग-अलग। जब आप असेंबली संस्करण संख्या बदलते हैं तो यह संभव है, लेकिन मौजूदा कोड के लिए इसे बिना किसी संकलन के उपयोग करना बेहद मुश्किल है। ब्रेकिंग परिवर्तन होने पर हम केवल असेंबली संस्करण बदलते हैं ताकि हम मामूली बग फिक्स आसानी से जारी कर सकें।

हमारे Assembly Versioning नीति पर और पढ़ें।

+0

असेंबली को नेट फ्रेमवर्क (बाध्यकारी) में समान माना जाता है, यदि आप मेजर और माइनर संस्करण संख्या –

+0

नहीं बदलते हैं तो यह वास्तव में सच नहीं है। जब आप मजबूत नामों का उपयोग करते हैं तो संपूर्ण संस्करण संख्या माना जाता है। –

+0

आपके उत्तर में लिंक अब टूटा हुआ है। मेरा मानना ​​है कि यह अब [यह एक] है (http://xheo.com/knowledge-base/deploylx/general/assembly-versioning)। – ssarabando

10

MSDN से:

  • बिल्ड: बिल्ड नंबर में एक अंतर एक ही स्रोत एक रखता प्रतिनिधित्व करता है। यह प्रोसेसर, प्लेटफ़ॉर्म, या कंपाइलर परिवर्तनों के कारण उपयुक्त होगा।

  • संशोधन: समान नाम, प्रमुख, और मामूली संस्करण संख्या के साथ असेंबली, लेकिन अलग-अलग संशोधन का उद्देश्य पूरी तरह से अदला-बदली करने योग्य है। यह पहले रिलीज़ असेंबली में सुरक्षा छेद को ठीक करने के लिए उपयुक्त होगा।

फिल Haack नेट संस्करण प्रणाली का एक nice deconstruction है, लेकिन व्यवहार में मुझे नहीं लगता कि उनकी चिंताओं वास्तव में बात मेरे अनुभव में के बाद से नेट/एमएस वर्ज़निंग प्रणाली केवल वास्तव में तकनीकी द्वारा किया जाता है है डिबगिंग/समर्थन/ट्रैकिंग उद्देश्यों के लिए, सार्वजनिक और परियोजना प्रबंधन अक्सर दिनांक या मेड-अप-मार्केटिंग-संस्करण-संख्या आधारित होगा।

एफडब्ल्यूआईडब्ल्यू प्रत्येक .NET प्रोजेक्ट में मैंने "X.Y. *" द्वारा शासित किया है। हम बड़े और नाबालिगों को मैन्युअल रूप से नियंत्रित करना चाहते हैं लेकिन सिस्टम को निर्माण और संशोधन को नियंत्रित करने दें।

2

हम दो की वृद्धि में बग-फ़िक्स नंबर का उपयोग करते हैं। विषम संख्याओं का मतलब मामूली बग फिक्स जारी किया गया है और यहां तक ​​कि संख्याओं का मतलब बग फिक्स पर काम करना है। जाहिर है यह कुछ व्यवसायों में आम है, यानी, मैं जिस में हूं।

विचार आकस्मिक रिलीज की पहचान करना है, और किसी भी तरह से मुझे यह विचार पसंद है। चीजें करना ताकि आप आसानी से चीजें देख सकें जो गलत हैं। यह नहीं कहता कि एक विषम संख्या अनिवार्य रूप से एक गैर-आकस्मिक रिलीज है, केवल इतना है कि यह काफी उच्च संभावना के साथ है।

+0

क्या यह दूसरा रास्ता नहीं होना चाहिए? क्योंकि, आपके सिस्टम में एक .0 का मतलब विकास संस्करण है, लेकिन 1.0.0 रिलीज की वास्तविक रिलीज होने की संभावना है, है ना? : डी इसके अलावा, मुझे यह प्रणाली पसंद है। समझ में आता है। मैं हमेशा संख्या को बढ़ाने के लिए अनिश्चित हूं (क्योंकि, बहुत जल्दी मतलब है कि "गलत" संस्करण है, और बहुत देर हो चुकी है कि आप नए संस्करण संख्या के साथ जल्दी परीक्षण नहीं कर सकते हैं)। – OregonGhost

5

मुझे लगता है कि पॉल सिकंदर के जवाब सही एक है, लेकिन मैं अपने AssemblyInfo फ़ाइल में निम्न टिप्पणी जोड़ना चाहते हैं:

आप 1.0.2.* याद पिछले बिट (* द्वारा प्रतिस्थापित) एक यादृच्छिक है कि का उपयोग करते हैं संख्या तो अगर आप 1.0.2. * `शाम को बनाते हैं, और कल आप इसे फिर से बनाते हैं, तो दूसरे संस्करण में आपके द्वारा पहले किए गए निर्माण की तुलना में कम संस्करण संख्या हो सकती है।

+2

एमएसडीएन के अनुसार: "डिफ़ॉल्ट बिल्ड संख्या प्रतिदिन बढ़ती है। डिफ़ॉल्ट संशोधन संख्या यादृच्छिक है।" –

+0

ठीक है, अगर यह यादृच्छिक है तो आप एक ही विसंगति प्राप्त कर सकते हैं: बाद में निर्माण के पहले संस्करण की तुलना में कम संस्करण संख्या है। –

+0

बस रिकॉर्ड के लिए, संशोधन संख्या यादृच्छिक नहीं है (अब)। अब, स्वत: वृद्धिशील निर्माण और संशोधन क्रमशः दिनांक और समय का प्रतिनिधित्व करते हैं। बिल्ड 01.01.2000 के बाद से पारित दिनों की संख्या है, और संशोधन उस दिन पारित सेकंड की संख्या है जो दो दिन विभाजित है (65535 सीमा के कारण मुझे विश्वास है)। –

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