no visual studio 2005 vá em propriedades do projeto que deseja compartilhar (COM).
- na aba "application coloque um assemblyname forte (exemplo: nomedasuaempresa.nomedoseuprojeto)
- na aba "compile" marque a opção "Register for COM interop".
Dê build no projeto e pronto.
Depois vá na pasta bin do seu projeto e pegue a .dll e a .tlb e jogue dentro da pasta que desejar no servidor aonde está rodando a aplicação
para registrar no servidor:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\regasm.exe c:\pasta aonde você jogou a sua dll e o tlb\nomedasuaempresa.nomedoseuprojeto.dll /tlb: c:\pasta aonde você jogou a sua dll e o tlb\nomedasuaempresa.nomedoseuprojeto.tlb /codebase
*IMPORTANTE: REINICIAR O IIS LOGO APÓS O REGISTRO!!!
é necessário colocar a diretiva /codebase para registrar no registro do windows aonde está localizada a sua dll se não ele tenta pegar do diretório padrao do windows e dá erro... eu fiquei horas tentando saber o porque do erro em produção já que na minha máquina não dava erro... ai vi no regedit que em desenvolvimento tinha esse atributo "codebase" no registro e em produção não... eureka!