Come posso annullare la registrazione delle DLL COM inizialmente aggiunte con RegSvr32 quando l'argomento /u non funziona?

StackOverflow https://stackoverflow.com/questions/19725

Domanda

Esatto, inizialmente funzionava:

c:\regsvr32 Amazing.dll

poi, (accidentalmente - potrei aggiungere) devo averlo eseguito di nuovo, e (anzi) di nuovo quando sono state rilasciate nuove versioni di "Amazing.dll".Sì, lo so Ora Avrei dovuto correre:

c:\regsvr32 /u Amazing.dll

in anticipo - ma ehi!Ho dimenticato.

Per andare al sodo, quando aggiungo il riferimento COM in VS, posso vedere 3 istanze di "Amazing" che puntano tutte alla stessa posizione (c:\Amazing.dll), in esecuzione regsvr32 /u rimuove uno dei riferimenti, la seconda volta - non fa nulla...

Come posso eliminare questi riferimenti?Sto guardando uno scenario regedit?- E allora esattamente succede se elimino una delle chiavi???

Saluti

È stato utile?

Soluzione

I GUID del tuo oggetto non dovrebbero cambiare.In altre parole, una volta registrato l'oggetto COM, la nuova registrazione non dovrebbe aggiungere nulla in più al registro.

A meno che non siano stati aggiunti ulteriori interfacce o oggetti COM al progetto.

In ogni caso, se si tratta di un'operazione una tantum (e sembra che lo sia), apri regedit ed elimina manualmente le chiavi non necessarie.

Altri suggerimenti

C'è uno strumento di MS che è ancora in giro ed è attivo dai giorni di Win95 che scansiona il registro e fa cose come trovare chiavi COM che non puntano più a un file valido ecc. chiamato RegClean (l'ho trovato qui: http://downloads.zdnet.com/abstract.aspx?assetid=881470&node=2094) che ho visto in alcuni posti ancora in uso, in particolare quando si scherza con elementi COM legacy in VB che generano nuovi GUID COM dopo ogni build.

Quindi, se hai capito, hai annullato la registrazione e cancellato o spostato il file, esegui l'app e ripulirà le voci "orfane".

Se decidi di rimuovere le chiavi utilizzando RegEdit, potrebbe essere necessario rimuovere gli ID di classe e le voci guid.

Mi sono già trovato in un pasticcio orribile con COM prima.Purtroppo ho dovuto scegliere la mia strada attraverso il registro cancellando ogni riferimento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top