2010-10-22 18 views
6

Quando l'opzione Registra per interoperabilità COM nelle proprietà di build è selezionata, ottengo un errore:Registra per interoperabilità COM

Cannot register assembly -access denied

Quando l'opzione è selezionata, il progetto si basa senza alcun errore. Ma il mio requisito è quello di registrare gli oggetti COM come ho bisogno di utilizzare lo stesso in VB. Qualcuno può aiutarmi in questo?

risposta

9

In Windows Vista e versioni successive, provare ad eseguire Visual Studio elevato, quindi dispone delle autorizzazioni necessarie per eseguire un regasm sull'assieme di output.

+0

Grazie, questa soluzione ha funzionato per me ..... – Kings

+4

Quindi contrassegnarlo come risposta :) –

8

Un'estensione alla risposta di Frédéric Hamidi (in positivo per il vostro signore), è possibile eseguire Visual Studio come amministratore, disattivare il "registro per l'interoperabilità COM" e aprire un prompt dei comandi come amministratore.

Il comando per registrare il componente è poi qualcosa di simile (sulla mia macchina - W7 a 64-bit):

c:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe /tlb /codebase C:\path\to\your\DLL 

Personalmente uso la seconda come il processo di debug è abbastanza complessa e talvolta non è possibile per scorrere il codice (o parte del debugging avviene su un'altra macchina)

+1

Molto utile. Sto costruendo un'antica soluzione Biztalk 2002 in cui RegisterForComInterop è impostato su true per la maggior parte dei progetti. Non mi piace eseguire il mio processo di compilazione di un amministratore, quindi non ha funzionato quando ha provato a RegAsm la DLL compilata. Sembra che questo va bene dal momento che non ho bisogno di essere registrato sul server di build ... registriamo la DLL compilata sul server delle applicazioni durante la distribuzione. Grazie! –

Problemi correlati