मेरे पास एक क्लास लाइब्रेरी प्रोजेक्ट है जिसे मैंने बनाया है। आइए क्लास को कॉल करें। कक्षा ए में मुझे कुछ टूल तक पहुंचने की आवश्यकता है जो dll (ToolsDLL.dll) में रहते हैं।क्या आप एक साथ डीएलएस बंडल कर सकते हैं?
ClassA में मैं परियोजना के लिए ToolsDLL.dll जोड़ा गया है और हमेशा आउटपुट निर्देशिका में कॉपी करना ToolsDLL.dll फ़ाइल का चयन किया है। इसलिए लाइब्रेरी बस ठीक और आउटपुट निर्देशिका बनाता है और आउटपुट निर्देशिका में मैं ClassA.dll को ToolsDLL.dll
के साथ देखता हूं, अगला, मैं ऐप_ए कहता हूं जो क्लासए में विधियों का उपयोग करता है। तो, मेरे App_A प्रोजेक्ट में, मैंने ClassA.dll का संदर्भ जोड़ा ताकि मैं इसका नामस्थान एक्सेस कर सकूं। सब ठीक है और अच्छा है, यह निर्माण/संकलित करता है।
समस्या है जैसे ही मैं App_A चलाता हूं और यह उस बिंदु पर जाता है जहां ToolsDLL.dll का उपयोग करने की आवश्यकता होती है, यह अपवाद फेंकता है "ToolsDLL.dll लोड करने में असमर्थ। मुझे समझ में नहीं आता कि यह कैसे संभव है उस डीएल को नहीं मिला क्योंकि यह ClassA.dll के समान निर्देशिका में है।
मुझे पता चला कि अगर मैं App_A की आउटपुट निर्देशिका में ToolsDLL.dll डालता हूं तो यह ठीक काम करता है। क्या इसके आसपास कोई रास्ता है? वहाँ कोई तरीका है कि ToolsDll.dll को किसी भी तरह ClassA.dll के साथ बंडल किया जा सकता है। कारण यह है कि मेरे ग्राहक एपीए के समान अपने स्वयं के एप्लिकेशन लिखेंगे और यह अच्छा होगा अगर उन्हें केवल अपनी परियोजना में एक फ़ाइल का संदर्भ देना पड़े और एकाधिक नहीं ।
ऐसा लगता है कि ILMerge केवल एक नेट विधानसभाओं पर इस्तेमाल किया जा सकता है। क्या वो सही है। मेरे मामले में, एक चिप निर्माण द्वारा ToolsDLL.dll मुझे प्रदान किया गया था। मुझे नहीं पता कि यह एक .NET असेंबली है या नहीं। क्या इससे कोई फर्क पड़ता है? – PICyourBrain
हां, मेरा मानना है कि यह केवल .NET असेंबली के लिए काम करता है। यह पता लगाने के लिए कि आपको किस प्रकार का '.dll' मिला है, शायद आप इसका उपयोग कर सकते हैं।'.dll' को आजमाने और अलग करने के लिए नेट एसडीके उपयोगिता 'ildasm'। यदि यह एक .NET असेंबली है, तो यह काम करना चाहिए; यदि इसमें देशी कोड है, तो 'ildasm' विफल होना चाहिए। – stakx
मैंने विजुअल स्टूडियो में देखा है यदि मैं ToolsDll.dll पर जाता हूं -> गुणों में एक्शन नामक एक संपत्ति होती है। क्या मैं इसे एंबेडेड संसाधन में सेट कर सकता हूं? – PICyourBrain