2009-12-16 17 views
5

मुझे जीएसी में कुछ असेंबली तैनात करनी है। मेरे पास जीएसी की समझ (मेरी) के बारे में कुछ सवाल थे। वास्तव में मुझे भ्रमित करता है।जीएसी और असेंबली संस्करण

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

मैं GAC की बेहतर समझ के लिए निम्न उदाहरण का उपयोग करते हुए मेरे सवाल समझा जाएगा:

मान लीजिए मैं उत्पादों ए और बी की है।

दोनों ए और बी जीएसी में myfile.dll स्थापित किए गए हैं।
(i) विधानसभा संस्करण: [1.0.0.0]
(ii) विधानसभा फ़ाइल संस्करण: [2.0.0.0] (जानबूझकर अधिक भ्रम से बचने के अलग)

  1. मान लीजिए मैं बग समाधान है कि लागू किया है myfile.dll में फिर मुझे किस संस्करण को बदलना चाहिए?

  2. मान लीजिए कि मेरे पास 'एएनईई' का नया संस्करण है। तो कौन सा संस्करण बदला जाना चाहिए ताकि दोनों ए, बी ANEW दोनों तरफ रह सकें।

  3. लगता है अगर मेरे पास है 'ए' GAC में और अब मैं 'बी' जो गाक dll बग फिक्स ..then साथ है स्थापित करने का प्रयास myfile.dll वर्तमान के साथ स्थापित किया जो संस्करणों ताकि परिवर्तन में दर्शाता है बदलने के लिए ' ए'।

  4. क्यू 3 के समान ही है लेकिन बी का परिवर्तन 'ए' में प्रतिबिंबित नहीं होना चाहिए।

  5. मान लीजिए 'ए' myfile (1.0.0.0) के साथ स्थापित है। अब मान लीजिए 'बी' myfile (1.x.y.z) के साथ स्थापित है .. क्या जीएसी फ़ाइल बदली जाएगी?

  6. मान लीजिए 'ए' myfile (1.0.0.0) के साथ स्थापित है। अब मान लीजिए 'बी' myfile (2.x.y.z) के साथ स्थापित है .. क्या जीएसी फ़ाइल बदली जाएगी?

  7. मान लीजिए 'ए' myfile (1.0.0.0) के साथ स्थापित है। अब मान लीजिए 'बी' माईफाइल (1.0.0.0) के साथ स्थापित हो रहा है मानते हुए कि संस्करण नहीं बदला गया है .. क्या जीएसी फ़ाइल बदली जाएगी?

  8. इसके अलावा जीएसी डीएलएस को कैसे हटाया जाता है। क्या हटाने के लिए कोई मानदंड है?

मुझे लगता है कि प्रश्न थोड़ा उलझन में हैं लेकिन उम्मीद है कि आप लोग जानते हैं कि मैं क्या पूछ रहा हूं।

पुनश्च: इस विषय net-assembly-dll-sharing-and-deploying

उत्तर

4

1) करने के लिए संबंधित परिवर्तन आप किस तरह के बग को ठीक करने के लिए कर पर निर्भर करता है। यदि आप किसी भी सार्वजनिक इंटरफेस को बदलते हैं या व्यवहार में महत्वपूर्ण बदलाव करते हैं, तो मैं असेंबली संस्करण संख्या को टक्कर दूंगा। यदि नहीं, तो आप ऐसा कर सकते हैं जो माइक्रोसॉफ्ट एकमात्र संस्करण फ़ाइल करता है।

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

3) मैं असेंबली संस्करण संख्या बदल सकता हूं, और पुराने संस्करण के ग्राहकों को नए पर रीडायरेक्ट करने के लिए प्रकाशक नीति शामिल कर सकता हूं।

4) 3 के समान है लेकिन प्रकाशक नीति शामिल नहीं है, या ए को बाईपास करने के लिए कॉन्फ़िगर करें।

5) & 6) नहीं, यह एक तरफ स्थापित है।

7) मुझे ऐसा नहीं लगता है, लेकिन यह इस पर निर्भर हो सकता है कि वे फ़ाइल संस्करण में भिन्न हैं या नहीं। मुझे यकीन है कि आप इसे सत्यापित करने के लिए कोशिश कर सकते हैं।

8) ऐसे संदर्भ हैं जिनका उपयोग आकस्मिक हटाने को रोकने के लिए किया जा सकता है। एमएसआई इसका उपयोग करता है, इसलिए यदि आप स्थापित करने के लिए एमएसआई का उपयोग करते हैं, तो यह असेंबली के संदर्भों का ट्रैक रखता है और जब तक सभी ऐप्स अनइंस्टॉल नहीं किए जाते हैं तब तक इसे हटा नहीं देते हैं। यदि आप इसे मैन्युअल रूप से करते हैं (गैकुटिल/यूएफ का उपयोग करके कहें) तो आप चीजों को पेंच कर सकते हैं। उत्तर के लिए

+1

thx। मुझे इस लिंक को http://blogs.msdn.com/junfeng/archive/2004/02/14/72666.aspx "जब हम देखते हैं कि जीएसी में असेंबली पहले से मौजूद है, तो हम फ़ाइल संस्करण की तुलना करने की कोशिश करते हैं जीएसी में असेंबली (चलिए इसे "पुरानी" असेंबली कहते हैं), और असेंबली के फ़ाइल संस्करण को स्थापित करने के बारे में (और "नई" असेंबली)। यदि "नया" असेंबली का फ़ाइल संस्करण "पुरानी" असेंबली से कम है, हम "नई" असेंबली स्थापित करने से इनकार कर देंगे, जब तक कि आप इंस्टॉल करने के लिए संलयन न करें ("gacutil -if")। " – Amitd

+1

इस उत्तर और कुछ शोध के बाद .. मुझे जवाब मिल गया, thx u :) [ए] जीएसी में साइड बाय साइड इंस्टॉलेशन के लिए हमेशा असेंबली संस्करण बदलता है। [बी] बग फिक्स के लिए हमेशा असेंबली फ़ाइल संस्करण बदलें। [सी] पुराने फ़ाइल संस्करण को हमेशा उसी असेंबली संस्करण में नए द्वारा प्रतिस्थापित किया जाता है। [डी] पुराने फ़ाइल संस्करण (उसी असेंबली संस्करण दिए गए) के साथ नए फ़ाइल संस्करण को प्रतिस्थापित करने के लिए मजबूर करने के लिए gacutil में बल ध्वज का उपयोग करें। – Amitd

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