2010-02-10 15 views
5

Ho una DLL .NET che scrive sulla traccia. Ma sembra che quando chiamo la mia DLL da un VB6 EXE la traccia non funzioni. Ho creato un file myApp.config nella cartella EXE con la configurazione di traccia, ma questo non risolve il problema.Trace non funziona in una DLL .NET caricata da VB6 EXE

Ho anche cercato di creare gli oggetti Trace in codice, ma non funziona:

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

Se io chiamo il mio DLL da un EXE NET funziona, anche se non ho l'applicazione. config nella cartella EXE, perché l'ho impostato in codice se la configurazione non è stata trovata.

risposta

3

Se l'applicazione VB6 si chiama MyApp.exe, il file di configurazione deve essere chiamato MyApp.exe.config. (MyApp.config funziona anche a seconda delle versioni di .NET Framework e dei service pack.)

All'interno di tale file di configurazione le impostazioni dovrebbero funzionare.

Ho traccia nel mio codice in esecuzione da VB6 tramite COM che funziona correttamente.

È inoltre possibile che i privilegi siano diversi quando si esegue il codice VB6?

Infine, se si esegue il debug dell'applicazione VB6 nell'IDE VB6, è necessario aggiungere le impostazioni a VB6.exe.config nella cartella VB6.exe e riavviare VB6 per garantire che vengano apportate modifiche.

-2

Penso che il problema è che VB6 utilizza COM per caricare la DLL gestita.

Il codice .NET non carica il file .config poiché utilizza un singolo gestore 'shim' per tutto l'interoperabilità COM.

Il meglio che si possa fare è aggiungere qualcosa al proprio file machine.config (ma alla maggior parte delle persone non piace farlo).

L'inizializzazione della traccia nel codice dovrebbe funzionare comunque. Rimuovere la configurazione di traccia dal .EXE gestito ed eseguirlo in un debugger per verificare che la versione del codice funzioni anche lì.

Problemi correlati