Come annullare la registrazione del mio assembly .net quando non si trova più nella stessa posizione?

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

Domanda

Ho una dll registrata per l'interoperabilità com, quindi in HKLM \ Software \ Classes \ CLSID [my guid] \ InprocServer32 [la mia versione no] \ Codebase ha il percorso della dll registrata. Tuttavia, ho riorganizzato la mia struttura di cartelle in modo che il percorso non sia più corretto. C'è un modo per annullare la registrazione di quella DLL senza rimetterla, quindi annullare la registrazione, quindi rimuovere nuovamente il file?

E se non avessi più quella dll o ne avessi solo una con un numero di versione diverso?

È stato utile?

Soluzione

I diversi numeri di versione (generalmente) non contano. Finché la DLL più recente contiene tutti i GUID che appaiono nella versione precedente, verrà annullata la registrazione in modo corretto (usando quella nuova con regasm, exe). E, naturalmente, la nuova registrazione dell'assembly per l'interoperabilità COM trasferirà correttamente le chiavi di registro necessarie.

Altri suggerimenti

Per quanto ne so, tutto ciò che serve è registrare la DLL nella sua nuova posizione.
Puoi utilizzare lo strumento MS oleview.exe per verificare i punti di registrazione COM nella posizione corretta.

Il problema che abbiamo riscontrato con la sola registrazione della nuova dll è quando ha una versione precedente a quella precedentemente registrata. Si finisce con questo nel registro:

HKCR\MyLib.MyClass\CLSID:(Default)=<my guid>

and 

HKCR\CLSID\<my guid>:Assembly=<string containing version number> 

and 

HKCR\CLSID\<my guid>\InprocServer32\<version number>\ ... more details

Penso che il runtime proverà a caricare l'assembly identificato in HKCR\CLSID\<my guid>:Assembly, quindi se vuoi provare a annullare la registrazione di quello,

Questa non è una risposta su come annullare la registrazione, ma se non riesci a annullare la registrazione ho trovato utile entrare e rimuovere la chiave per il numero di versione che non hai più, e probabilmente aggiornare il Assembly valore manualmente se hai il coraggio.

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