2011-02-04 8 views
5

Sto distribuendo un'applicazione .NET VSTO tramite clic una volta. L'assembly principale dell'applicazione deve essere registrato per l'interoperabilità COM come parte del processo di installazione. So che questo può essere fatto scrivendo il codice per eseguire "REGASM assembly.dll/tlb", ma il problema è che le stazioni di lavoro di destinazione che installeranno la mia applicazione non hanno diritti amministrativi, quindi il regazzo fallisce quando si cerca di registrarsi la libreria dei tipi.È possibile registrare un assembly .NET per l'interoperabilità COM senza aggiungere voci di registro?

La mia domanda è, come posso registrare il mio .net assembly per interoperabilità com quando non ho accesso amministrativo?

+2

COM senza reg. È la solita risposta per questo. Non solo per un'applicazione di Office, ci sono troppi componenti aggiuntivi in ​​competizione per fare lo stesso. E spezza il tuo manifest nel processo. Non è possibile installarlo comunque, la scrittura nella directory di installazione dell'ufficio richiede i privilegi di amministratore. Molto incompatibile con una distribuzione ClickOnce. Non c'è alternativa, ma l'utente riconosce "sì, vai avanti e scherza con la mia macchina". Se lei si fida di te, non c'è un problema. –

+0

Questa sembra la (sfortunata) risposta a me. Non riesco a spuntare un commento però! –

risposta

3

Si potrebbe utilizzare l'attivazione senza registrazione dei componenti COM. Ho usato questo in un'applicazione distribuita tramite click-once e ha funzionato bene. Ecco alcuni link per iniziare:

Registration-Free Activation of .NET-Based Components

Walkthrough: Manually Deploying a ClickOnce Application

How To: ClickOnce deployment for unmanaged app with COM component in managed assembly

+0

Contrassegnare come risposta, ma si tenga presente che questa non è un'opzione valida per i componenti aggiuntivi di livello applicazione VSTO. –

1

Non pensare che tu possa. Potrebbe essere sbagliato, ma una grande parte di COM è davvero solo un modo per trovare le cose tramite il registro. Se non puoi modificare il registro ... sei nei guai.

http://en.wikipedia.org/wiki/Component_Object_Model#Registry

+0

Hmm .. come nota a margine, ho ragione nel ritenere che la mancanza di diritti amministrativi significhi che non c'è modo di aggiungere voci di registro? –

+1

Non devi essere un amministratore per avere i diritti di registro. ma hai bisogno dei diritti di registro. http://support.microsoft.com/kb/310426 – madmik3

+0

Power Gli utenti possono scrivere nel registro. È un gruppo un po 'più alto degli utenti normali. –

1

Dipende dal scenario, ma forse la registrazione libera da COM (utilizzando un manifest) aiuterà. Vedi this article