[.net] असेंबली विशेषताओं का उपयोग करने के लिए सबसे अच्छा अभ्यास क्या हैं?


Answers

मेरे मामले में, हम एक ऐसे उत्पाद का निर्माण कर रहे हैं जिसके लिए हमारे पास विजुअल स्टूडियो समाधान है, जिसमें विभिन्न परियोजनाएं हैं। सामान्य गुण जाते हैं। समाधान में, लगभग 35 परियोजनाएं हैं, और एक आम असेंबली जानकारी (CommonAssemblyInfo.cs) है, जिसमें निम्नलिखित विशेषताएं हैं:

[assembly: AssemblyCompany("Company")]
[assembly: AssemblyProduct("Product Name")]
[assembly: AssemblyCopyright("Copyright © 2007 Company")]
[assembly: AssemblyTrademark("Company")]

//This shows up as Product Version in Windows Explorer
//We make this the same for all files in a particular product version. And increment it globally for all projects.
//We then use this as the Product Version in installers as well (for example built using Wix).
[assembly: AssemblyInformationalVersion("0.9.2.0")]

असेंबली टाइटल, असेंबली वर्जन इत्यादि जैसे अन्य गुण, हम प्रति असेंबली आधार पर आपूर्ति करते हैं। विधानसभा निर्माण करते समय दोनों विधानसभाInfo.cs और CommonAssemblyInfo.cs प्रत्येक असेंबली में बनाए जाते हैं। यह हमें दोनों दुनिया के सर्वश्रेष्ठ प्रदान करता है जहां आप कुछ अन्य परियोजनाओं और कुछ अन्य लोगों के लिए विशिष्ट मूल्यों के लिए कुछ सामान्य विशेषताओं को प्राप्त करना चाहते हैं।

उम्मीद है की वो मदद करदे।

Question

मेरे पास कई परियोजनाओं का समाधान है। मैं एक समाधान व्यापक असेंबली जानकारी फ़ाइल को जोड़कर AssemblyInfo.cs फ़ाइलों को अनुकूलित करने का प्रयास कर रहा हूं। ऐसा करने के लिए सबसे अच्छे अभ्यास क्या हैं? कौन सा गुण समाधान व्यापक फ़ाइल में होना चाहिए और कौन सा प्रोजेक्ट / असेंबली विशिष्ट है?

संपादित करें: यदि आप रुचि रखते हैं तो एक अनुवर्ती प्रश्न है असेंबली वार्सन, असेंबलीफाइलवर्सन और असेंबली इन्फॉर्मेशन वर्जन के बीच मतभेद क्या हैं?




एमएसबिल्ड कम्युनिटी टास्क में एक कस्टम कार्य होता है जिसे असेंबलीइन्फो कहा जाता है जिसका उपयोग आप अपने assemblyinfo.cs को उत्पन्न करने के लिए कर सकते हैं। इसे उपयोग करने के लिए आपके csproj फ़ाइलों का थोड़ा हाथ-संपादन की आवश्यकता है, लेकिन यह सार्थक है।




एक चीज जिसे मैंने उपयोगी पाया है, प्री-बिल्ड चरण में टोकन-प्रतिस्थापन लागू करके असेंबली वर्जन तत्व (आदि) उत्पन्न करना है।

मैं TortoiseSvn का उपयोग करता हूं, और AssemblyInfo.wcrev SubWCRev.exe टेम्पलेट AssemblyInfo.wcrev को बदलने के लिए अपने SubWCRev.exe का उपयोग करना आसान है। टेम्पलेट में प्रासंगिक रेखा इस तरह कुछ दिख सकती है:

[assembly: AssemblyVersion("2.3.$WCREV$.$WCMODS?1:0$$WCUNVER?1:0$")]

तीसरा तत्व तब संशोधन संख्या है। मैं जांच करने के लिए चौथे तत्व का उपयोग करता हूं कि मैं कोई नई या बदली गई फाइलें नहीं भूल गया हूं (चौथा तत्व 00 है यदि यह ठीक है)।

वैसे, अपने संस्करण नियंत्रण में AssemblyInfo.wcrev जोड़ें और यदि आप इसका उपयोग करते हैं तो AssemblyInfo.cs अनदेखा करें।




एकाधिक परियोजनाओं के बीच फ़ाइल साझा करने के लिए आप एक मौजूदा फ़ाइल को एक लिंक के रूप में जोड़ सकते हैं।

ऐसा करने के लिए, एक मौजूदा फ़ाइल जोड़ें, और फ़ाइल चयनकर्ता में "लिंक के रूप में जोड़ें" पर क्लिक करें। लिंक के रूप में जोड़ें http://laurent.etiemble.free.fr/dotclear/images/AddLinkedFile03_tn.png

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




Links