जब आप विजुअल स्टूडियो में एक नया सी # प्रोजेक्ट बनाते हैं, तो जेनरेट की गई असेंबलीइन्फो फ़ाइल में एक असेंबली GUID निर्दिष्ट करने वाली विशेषता शामिल होती है। विशेषता के ऊपर टिप्पणी बताती है कि इसका उपयोग किया जाता है "यदि यह परियोजना COM के संपर्क में है"।AssemblyInfo.cs: क्या कॉमविज़िबल (झूठा) का उपयोग करते समय ग्रिड निर्दिष्ट करने में कोई बात है?
मेरे किसी भी असेंबली में ऐसे प्रकार होते हैं जिन्हें COM को दिखाई देने की आवश्यकता होती है, इसलिए मैंने [assembly: ComVisible(false)]
के साथ अपनी असेंबली को चिह्नित किया है। क्या GUID निर्दिष्ट करने में कोई बात है?
मेरी भावना यह है कि उत्तर "नहीं" है - तो डिफ़ॉल्ट AssemblyInfo.cs फ़ाइल में [assembly: ComVisible(false)]
और [assembly: Guid("...")]
दोनों क्यों हैं?
संपादित करें:
प्रतिक्रियाओं को संक्षेप में प्रस्तुत करने के लिए:
उनके बीच, जवाब समझाने कि एक GUID को निर्दिष्ट यदि और केवल यदि COM इंटरॉप किया जा रहा है की आवश्यकता है। तो, मेरी स्थिति में, एक GUID आवश्यक नहीं है।
sharptooth आगे बताता है कि [assembly: ComVisible(false)]
COM इंटरऑप का उपयोग नहीं कर रहा है, क्योंकि अलग-अलग प्रकार के लिए ComVisible
ओवरराइड करना संभव है। इस कारण से डिफ़ॉल्ट AssembyInfo.cs में [assembly: ComVisible(false)]
और एक GUID दोनों शामिल हैं।
यह एक स्टैंडअलोन वेब सर्वर के लिए एक बहुत बड़ा [उपयोग] (http://stackoverflow.com/q/11403333/712526) है जिसके लिए एक एसएसएल प्रमाणपत्र – jpaugh
@jpaugh की आवश्यकता है: सुनिश्चित नहीं है कि हम इसके बारे में बात कर रहे हैं वही चीज। – Josh
मुझे पूरी तरह से यकीन नहीं है, खुद; लेकिन, मुझे उस परिदृश्य को काम करने के लिए असेंबली जानकारी से GUID का उपयोग करना पड़ा (उस पृष्ठ पर मेरे उत्तर के नीचे देखें।) मेरा (टेंटेटिव) निष्कर्ष यह है कि विंडोज एक एसएसएल बाध्यकारी "छड़ी" बनाने के लिए एक COM इंटरफ़ेस का उपयोग करता है एक विशेष ऐप – jpaugh