2011-01-26 17 views
23

के भीतर असेंबली संदर्भ जोड़ना मेरे पास web.config के बारे में कुछ सामान्य प्रश्न हैं और यह असेंबली संदर्भ के संबंध में कैसे काम करता है। मैं नए रेजर व्यू इंजन के साथ खेल रहा हूं और इसे पाने और चलाने में कुछ परेशानी थी।web.config

मेरे समस्या एक सामान्य

प्रकार या नाम स्थान का नाम 'XXXXX' नाम स्थान 'XXXXX' में मौजूद नहीं है के साथ शुरू (आप एक विधानसभा संदर्भ याद कर रहे हैं?)

अब मुझे लगा कि यह परियोजना के लिए एक साधारण संदर्भ संदर्भ था और मैं अपने रास्ते पर होगा। लेकिन जब भी मैंने लापता असेंबली का संदर्भ जोड़ा, तो मेरी परियोजना टूट रही।

मुझे समाधान मिला, और मुझे web.config के भीतर एक असेंबली संदर्भ जोड़ना पड़ा। एक बार मैंने यह सब ठीक काम किया।

पहले, मैं समझना चाहता हूं कि इस समस्या को ठीक करने के लिए web.config का संदर्भ क्यों जोड़ा गया। प्रोजेक्ट संदर्भ क्यों पर्याप्त नहीं था?

दूसरा, जब web.config में संदर्भ जोड़ने की बात आती है, तो मैं वाक्यविन्यास को समझना चाहता हूं। जब मैं इस

<add assembly="System.Web.WebPages" />

तरह मार्कअप देखना यह मेरे लिए बहुत स्पष्ट है कि मैं एक विधानसभा जोड़ रहा नामित System.Web.WebPages लगता है। लेकिन मेरे web.config में पूर्ण वाक्य रचना

<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

संस्करण आत्म व्याख्यात्मक लगता है, लेकिन संस्कृति क्या है और PublicKeyToken के लिए इस्तेमाल किया? क्या उन्हें जरूरी है? क्या होता है अगर मैं उनमें से किसी को नहीं जानता, तो क्या मैं कुछ भी डाल सकता हूं?

उत्तर

7

उत्तर देना अपने पहले प्रश्न:

नहीं है एक और एसओ एक उपयोगी जवाब के साथ यहाँ सवाल:

What is difference between web.config assemblies element and project file Reference element

मूलतः यह वेब परियोजनाओं और गैर-वेब परियोजनाओं के बीच मतभेद से कोई लेना देना है विजुअल स्टूडियो (जैसा कि मैं इसे समझता हूं)।

उत्तर देना अपने दूसरा प्रश्न:

यह चारों ओर से खुदाई की काफ़ी लिया, लेकिन ये रहा:

संस्कृति - सबसे विधानसभाओं तटस्थ संस्कृति होना चाहिए (यह मानते हुए कि इस आवेदन में सेट किया गया है)। हालांकि यदि आपके पास संस्कृति संवेदनशील असेंबली हैं तो यह वह जगह है जहां आप असेंबली की संस्कृति निर्दिष्ट करते हैं।

पब्लिककेट टोकन - यह सार्वजनिक/निजी कुंजी जोड़ी से सार्वजनिक कुंजी है जिसका उपयोग असेंबली पर हस्ताक्षर करने के लिए किया गया था। यह .NET को यह सत्यापित करने में सक्षम बनाता है कि वह जो असेंबली लोड हो रहा है वह सही है।

यहाँ अधिक उपयोगी जानकारी:

http://en.wikipedia.org/wiki/.NET_assembly

3

एक पुरानी सवाल है, पहले से ही उत्तर, लेकिन मैं इसे भर में आया था और जोड़ना चाहते थे:

एक सार्वजनिक कुंजी टोकन के महत्व यह है कि है दृढ़ता से नामित असेंबली के लिए बिल्कुल जरूरी है। वास्तव में, इस तरह आप एक पीकेटी प्राप्त करते हैं: असेंबली पर हस्ताक्षर करें (एक मजबूत नाम कुंजी उत्पन्न करें)। और आप इसे हस्ताक्षर किए बिना जीएसी में एक असेंबली स्टोर नहीं कर सकते हैं।

तो यह सिर्फ असेंबली की पहचान करने की बात से अधिक है ... यह एक असेंबली के हस्ताक्षर को सत्यापित करने के लिए .NET के लिए एक क्रिप्टोग्राफिक तरीका है, और यह सुनिश्चित करने के लिए कि यह छेड़छाड़ नहीं किया गया है।

0

हर कोई इस जवाब के साथ 'रन-आसपास' दे रहा है। यह आसान है:

<configuration> 
    <system.web> 
     <compilation debug="true" strict="false" explicit="true" targetFramework="4.0"> 
      <assemblies> 
       <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
      </assemblies> 
     </compilation> 
    </system.web> 
</configuration> 
+0

यह उत्तर ओपी के सवालों का जवाब नहीं देता है: संस्कृति और सार्वजनिककेट टोकन किस लिए उपयोग किया जाता है? क्या उन्हें जरूरी है? क्या होता है अगर मैं उनमें से किसी को नहीं जानता, तो क्या मैं कुछ भी डाल सकता हूं? –