2008-09-23 11 views
5

मैं विजुअल स्टूडियो में एक सी ++ डीएलएल में कस्टम संस्करण स्ट्रिंग्स को हाथ से .rc फ़ाइल संपादित करके जोड़ सकता हूं। उदाहरण के लिए, अगर मैं आर सी फ़ाइलक्या मैं एक .NET DLL में कस्टम संस्करण स्ट्रिंग जोड़ सकता हूं?

VALUE "BuildDate", "2008/09/19 15:42:52" 

की VersionInfo अनुभाग के लिए DLL के गुणों में संस्करण टैब के अंतर्गत जोड़ने फिर उस तारीख फ़ाइल एक्सप्लोरर में दिखाई दे रहा है,,।

क्या मैं सी # डीएलएल के लिए ऐसा ही कर सकता हूं? न केवल निर्माण की तारीख के लिए, बल्कि अन्य संस्करण जानकारी (जैसे स्रोत नियंत्रण जानकारी) के लिए

अद्यतन: मुझे लगता है कि विंडोज संसाधन को एम्बेड करके ऐसा करने का कोई तरीका हो सकता है, इसलिए मेरे पास asked how to do that है।

उत्तर

4

AssemblyInfo.cs में, आप रख सकते हैं:

[assembly: System.Reflection.AssemblyInformationalVersion("whatever you want")] 

यह एक संकलक चेतावनी है कि अगर यह 1.2.3.4 की तरह एक नंबर नहीं है, लेकिन मैं काफी यकीन है कि सब कुछ काम करेंगे हूँ।

+0

धन्यवाद - जो 'उत्पाद संस्करण' के रूप में दिखाई देता है, जो एक कामकाज के रूप में स्वीकार्य हो सकता है। मुझे वास्तव में क्या पसंद है 'संपत्ति तिथि' को संपत्ति के नाम के रूप में दिखाने में सक्षम होना है। – Simon

5

Khoth के जवाब में विस्तार करते हुए, AssemblyInfo.cs में:

आप कर सकते हैं:

[assembly: CustomResource("Build Date", "12/12/2012")] 

कहाँ CustomResource के रूप में परिभाषित किया गया है:

[AttributeUsage(AttributeTargets.Assembly)] 
public class CustomResourceAttribute : Attribute 
{   
    private string the_variable; 
    public string Variable {get { return the_variable; }} 

    private string the_value; 
    public string Value  {get { return the_value; }} 

    public CustomResourceAttribute(string variable, string value) 
    { 
     this.the_variable = variable; 
     this.the_value = value; 
    } 
} 

यह समाधान अच्छा है क्योंकि यह देता है आपको लचीलापन की आवश्यकता है और यह किसी भी कंपाइलर चेतावनी का कारण नहीं बनता है।

दुर्भाग्य से डेटटाइम का उपयोग करना संभव नहीं है क्योंकि गुणों में दर्ज मान स्थिरांक होना चाहिए, और डेटटाइम निरंतर नहीं है।

+1

अभी भी दो समस्याएं: पहला यह है कि आप केवल एक कस्टमResourceAttribute को इस तरह जोड़ सकते हैं; मुझे लगता है कि आपको अपने AttributeUsage विशेषता में "AllowMultiple = true" जोड़ने की आवश्यकता है। दूसरा यह है कि कस्टम संसाधन संस्करण टैब में दिखाई नहीं देते हैं - मैं उन्हें ऐसा करने के लिए कैसे प्राप्त करूं? – Simon

+0

आप सही हैं, मैं AllowMultiple भूल गया। मैं संस्करण टैब पर डेटा दिखाने के लिए आज (गुरुवार, -7 टाइमज़ोन।) दोपहर का भोजन करने का प्रयास करूंगा। – KyleLanser

+0

क्षमा करें, कोई समय नहीं, मैं इस सप्ताह के अंत में इसके साथ खेलूँगा। – KyleLanser

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

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