this article कोड के जेआईटी संकलन के कारण .NET असेंबली के लिए पुन: प्रयास आवश्यक नहीं है। लेख में कहा गया है:.NET असेंबली और डीएलएल
"जेआईटी-संकलित कोड में कोई समस्या नहीं है क्योंकि कोड को स्मृति में रखा गया है, इस पर आधारित समय पर पते उत्पन्न होते हैं। इसके अलावा, एमएसआईएल एमएसआईएल के बाद बेस एड्रेस मिस से शायद ही कभी प्रभावित होता है सन्दर्भ पते के बजाय संदर्भ टोकन-आधारित हैं। इस प्रकार जब जेआईटी कंपाइलर का उपयोग किया जाता है, तो सिस्टम बेस एड्रेस टकराव के लिए लचीला होता है। "
हालांकि, मैंने देखा है कि VS2008 सभी विधानसभाओं के लिए डिफ़ॉल्ट 0x0400000 आधार पते प्रदान करती है (परियोजना गुण> उन्नत निर्माण>) और अगर मैं अपने प्रक्रिया के लिए एक listdlls /r
कर मेरे सारे .NET विधानसभाओं डिफ़ॉल्ट प्रति रिबेस वास्तव में कर रहे हैं।
यदि मैं स्वयं को संबोधित करता हूं, तो कोई रिबिंग नहीं किया जाता है।
मेरा सवाल है: इस मामले में क्या छूट है और क्यों?
संपादित करें: मुझे यह जोड़ना चाहिए कि मैं एनजेन असेंबली के बारे में बात नहीं कर रहा हूं।
मैं समझता हूं कि फिक्स-अप का कोई कारण नहीं है, लेकिन चूंकि हम नेटवर्क ड्राइव से असेंबली लोड कर रहे हैं, इसलिए प्रतिलिपि के पेजफाइल भाग में प्रतिलिपि के कारण रिबेसिंग समस्या हो सकती है। विवरण के साथ किसी भी लिंक की सराहना की जाएगी। धन्यवाद। –
AFAIK, कॉपी-टू-पेजफाइल उन फिक्सअप का सीधा परिणाम है, क्योंकि निष्पादन योग्य कोड वाले पृष्ठ प्रक्रिया के लिए लिखने योग्य/निजी हो जाते हैं, इसलिए ओएस उन्हें सीधे डीएलएल से पुनः लोड नहीं कर सकता है। क्या आपका यह मतलब है? – liggett78
एक पुराना (मध्य आयु से लगता है) लेकिन 13 साल पहले रीबेजिंग (मूल कोड) के बारे में http://msdn.microsoft.com/en-us/library/ms810432.aspx पर अभी भी मूल्यवान लेख है। – liggett78