2010-02-10 19 views
5

से लोड किए गए .NET DLL में काम नहीं कर रहा है मेरे पास एक .NET DLL है जो ट्रेस को लिखता है। लेकिन ऐसा लगता है कि जब मैं अपने डीएलएल को वीबी 6 एक्सई से कॉल करता हूं तो ट्रेस काम नहीं कर रहा है। मैंने ट्रेस कॉन्फ़िगरेशन के साथ EXE फ़ोल्डर में एक myApp.config फ़ाइल बनाई है, लेकिन इससे समस्या हल नहीं होती है।वीबी 6 EXE

मैं भी कोड में ट्रेस वस्तुओं बनाने की कोशिश की है, लेकिन काम नहीं करता:

Dim _traceSrc As TraceSource = New TraceSource("myTraceSorce") 
Dim flListener As FileLogTraceListener = New FileLogTraceListener("myFileLogTraceListener") 
Dim tSwitch As SourceSwitch = New SourceSwitch("mySwitch") 
tSwitch.Level = _logLevel 

अगर मैं एक नेट EXE यह काम करता है से मेरी DLL फोन, भले ही मैं न एप्लिकेशन है। EXE फ़ोल्डर में कॉन्फ़िगर करें, क्योंकि अगर कॉन्फ़िगर नहीं मिला है तो मैंने इसे कोड में सेट किया है।

उत्तर

3

यदि आपके वीबी 6 एप्लिकेशन को MyApp.exe कहा जाता है तो कॉन्फ़िगरेशन फ़ाइल को MyApp.exe.config कहा जाना चाहिए। (MyApp.config कभी-कभी .NET Framework संस्करणों और सर्विस पैक के आधार पर भी काम करता है।)

उस कॉन्फ़िगरेशन फ़ाइल के अंदर आपकी सेटिंग्स को काम करना चाहिए।

मुझे अपने कोड में वीबी 6 से चलने वाले कोड में ट्रेसिंग है जो ठीक काम कर रहा है।

क्या वीबी 6 कोड चलाते समय आपके विशेषाधिकार अलग-अलग हैं?

अंत में, यदि आप वीबी 6 आईडीई में वीबी 6 ऐप डिबग कर रहे हैं तो आपको VB6.exe फ़ोल्डर में VB6.exe.config पर सेटिंग्स जोड़ने की आवश्यकता है, और परिवर्तनों को ध्यान में रखते हुए वीबी 6 को पुनरारंभ करें।

-2

मुझे लगता है कि समस्या यह है कि वीबी 6 आपके प्रबंधित DLL को लोड करने के लिए COM का उपयोग कर रहा है।

.NET कोड आपकी .config फ़ाइल लोड नहीं करेगा क्योंकि यह सभी COM इंटरऑप के लिए एक 'शिम' हैंडलर का उपयोग करता है।

सबसे अच्छा आप अपने मशीन.कॉन्फिग फ़ाइल में कुछ जोड़ना चाहते हैं (लेकिन अधिकांश लोग ऐसा करना पसंद नहीं करते हैं)।

कोड में ट्रेसिंग शुरू करना हालांकि काम करना चाहिए। प्रबंधित .EXE से अपनी ट्रेसिंग कॉन्फ़िगरेशन निकालें और यह जांचने के लिए कि डीब्यूजर संस्करण भी काम करता है, इसे डीबगर में चलाएं।