Sono stato bloccato in questo problema per alcune ore. Spero che qualcuno abbia avuto un problema simile a questo.Debug del progetto VB6 che chiama una DLL .Net (C#)
Abbiamo sviluppato un prototipo .Net (C#) dll utilizzando VS2010 e vorremmo essere in grado di chiamare questa DLL in entrambe le applicazioni C# e l'applicazione VB6.
La mia domanda è:
E 'possibile eseguire il debug di un'applicazione VB6 che chiama una DLL Net? Ho ricevuto un messaggio di errore "Errore di automazione Il sistema non riesce a trovare il file specificato"
Il messaggio di errore suggerisce che c'è qualcosa che manca per il mio VB6 app per trovare la dll .Net.
Sono consapevole che se l'applicazione VB6 è stato compilato, e il file EXE è stato creato, il VB6 chiamerà con successo la funzionalità DLL .Net quando si utilizza il file exe
Tuttavia è importante che possiamo eseguire il debug attraverso la nostra applicazione VB6. Sfortunatamente il debugging non ti permette di scavalcare la linea di codice che istanzia l'oggetto di classe .Net della DLL. Non riesco a farlo.
NOTA: ho dato un'occhiata ai forum e alla documentazione MSDN e trovo principalmente soluzione per chiamare una DLL VB6 in .NET; che purtroppo è il contrario di ciò che dobbiamo fare.
NOTA: Ho già registrato l'assembly compilato .Net (C#) e l'ho fatto riferimento nel progetto VB6.
Ho tuttavia trovato queste due pagine, che sembravano essere ciò di cui abbiamo bisogno, ma è una soluzione per chiamare una DLL .NET (C#) generata utilizzando VS2005. Questo non sembra funzionare quando la DLL .NET (C#) è stata generata utilizzando VS2010.
Se qualcuno potesse dare qualche suggerimento o indicarmi dove posso ottenere uno, che sarebbe grande.
Grazie
SOLUZIONE Grazie a @HansPassant, ho trovato la soluzione. Per eseguire il debug di un progetto VB6 che contiene un assembly C# .NET, è necessario registrare la DLL .NET tramite "regasm" e "gacutil", quindi assicurarsi di chiudere e riaprire l'applicazione VB6 prima di iniziare il debug .
Se ho capito bene la tua domanda, vuoi eseguire il debug dal lato VB 6 (cioè, dall'ID VB 6)? Non sarà possibile: il debugger VB 6 funziona * solo * con il codice VB 6. Non è in grado di gestire il codice nativo e sicuramente non è in grado di gestire il codice MSIL (.NET) poiché non era ancora stato inventato quando VB 6 è uscito. –
Suppongo che dipenda dal framework .Net che usi per compilarlo. Gli esempi che hai trovato sono l'opposto dato che le versioni di Visual Studio cercano di mantenere la retrocompatibilità – luchosrock
wow buon punto @CodyGray. Non l'ho capito, hai ragione. – luchosrock