visual-studio visual-studio-2010 com-interop

visual studio - ¿Qué hace realmente "Registrarse para la interoperabilidad COM"?



visual-studio visual-studio-2010 (1)

¿Qué hace exactamente la opción del proyecto VS "Registrarse para la interoperabilidad COM" en realidad? Porque cuando construyo mi biblioteca con esta opción habilitada, puedo llamar a CreateObject en mi biblioteca desde VBScript. Pero si construyo sin esto y luego ejecuto regasm manualmente, CreateObject falla. Entonces me pregunto: ¿qué hace VS2010 que no estoy haciendo?


Hace lo mismo que ejecutar Regasm.exe con las opciones / tlb y / codebase. La opción / codebase es probablemente la que olvidaste. A Regasm le gusta asumir que coloca el archivo DLL en el GAC y genera una advertencia cuando no lo hace. El GAC es de hecho una muy buena manera de evitar DLL Hell, siempre es un problema COM. Pero no es apropiado en su máquina de desarrollo, no quiere contaminar el GAC mientras desarrolla y prueba el código. Solo importa en la máquina de su usuario, la que probablemente esté expuesta a múltiples versiones.

Usar la versión incorrecta de Regasm.exe en una máquina de 64 bits es otra forma de meterse en problemas, generalmente hay 4 versiones en su máquina. Asegúrese de distinguir las versiones de 32 bits y de 64 bits (c: / windows / microsoft / framework vs framework64), escriben diferentes claves de registro. Desea elegir el que sea compatible con la aplicación del cliente. Usar ambos también está bien, el código .NET se puede ejecutar en cualquier modo, pero es bastante inusual. Y distinga entre la v2.0.50727 (.NET 2.0 a 3.5SP1) y las versiones v4.0. Elegir el símbolo del sistema de Visual Studio correcto es la mitad de la batalla.