utilizzare 2 diverse versioni dello stesso controllo (DLL), allo stesso tempo sulla stessa macchina?

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

  •  21-09-2019
  •  | 
  •  

Domanda

sto usando componente partito a3rd nel mio progetto e di recente ho aggiornato alla loro versione più recente che ha fissato bug 'A'

Purtroppo, mentre è risolto bug 'A', un'altra parte ha ottenuto completamente instabile, quindi introdotto un bug 'B'.

Da 'A' e 'B' sono in contesti completamente diversi, voglio avere entrambe le versioni del controllo installato e utilizzare l'uno in un caso in cui bug 'B' non è rilevante, e l'altro nel caso il bug 'A' non è rilevante.

Naturalmente, tutto ciò fino a quando una correzione adeguata è stato rilasciato dallo sviluppatore 3rd party

Chiunque qualsiasi pensiero come questo può essere fatto?

R

P.S. la dll deve essere registrato con regsvr32 ... Ho il sospetto che questo è il punto in cui si fa trovabili ... spero con qualche inganno è qui che possiamo registrare la cosa doppia con un nome diverso

È stato utile?

Soluzione

È possibile distribuire diversa versione di un componente COM e utilizzarli senza registrazione. Questa caratteristica del libero-registrazione COM è stato introdotto con Windows XP e richiede di distribuire un file manifest con le impostazioni appropriate.

Dai un'occhiata alla Attivazione Registrazione-Free di Componenti COM e href="http://msdn.microsoft.com/en-us/magazine/cc188708.aspx" rel="nofollow noreferrer"> Escape inferno DLL: Semplificare App Distribuzione con ClickOnce e COM Registration-Free .

Altri suggerimenti

È possibile registrare un solo dll COM dello stesso tipo sulla macchina ... questo è il motivo per cui il GAC è introdotta da Net

Se il componente di terze parti è un componente COM, allora siete sulla strada giusta, è necessario registrarsi due volte con nomi diversi / GUID.

EDIT: vedi divo risposta su molteplici registrazione COM ... Dopo XP è possibile farlo ora ...
Ma prima che l'unico modo per fare questo (breve di avere il codice sorgente e ricompilare una nuova DLL te stesso con diversi GUID di registrazione), è stato quello di modificare manualmente la libreria dei tipi, e sostituire i GUID esistenti con quelli nuovi. Questo sarebbe estremamente difficile. (Può esistere uno strumento per fare questo, ma se c'è io don; so di esso) La libreria dei tipi, dal modo in cui può essere incorporato nella DLL per sé, oppure può essere in un file separato * TLB (comune per i componenti VB6)

Se, OTOH, il componente è un componente di codice gestito, quindi il Registro di sistema potrebbe essere necessaria solo per l'integrazione in Visual Studio, e sarà sufficiente basta copiare la dll nella cartella dell'applicazione per l'eseguibile che si sta utilizzando in ...

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