.net - Genere manualmente el contenedor ActiveX después de dlls TLBIMP-ed?
com (1)
Tengo varios componentes de ActiveX a los que se debe acceder desde un proyecto de C #.
Puedo importarlos a través del cuadro de diálogo Agregar referencia de Visual Studio, que también generará automáticamente la clase de contenedores. (es decir, ABCLib
y AxABCLib
)
Sé que puedo generar el ensamblado primario de interoperabilidad manualmente ejecutando TLBIMP /primary
en cada archivo OCX individual, pero no pude encontrar una manera de generar el contenedor ActiveX a menos que lo haga a través de la interfaz de usuario de Visual Studio.
¿Hay una versión de línea de comandos que genere el contenedor de ActiveX en .NET SDK?
Quiero generar la versión de AxABCLib
desde el PIA que obtuve de TLBIMP manualmente. (es decir, establecer espacios de nombres, nombres de archivos dll de salida, etc.) ¿Es posible?
Oh ... lo encontré después de mirar la carpeta donde pertenece TLBIMP.
Se llama AxImp
.
C:/Program Files/Microsoft SDKs/Windows/v6.0A/bin/AxImp.exe
Básicamente, para generar una DLL PIA en su propio espacio de nombres personalizado:
Registra tu OCX
regsvr32 abc.ocx
Genere un par de claves de nombre seguro para su ocx ejecutando
sn -k
Ejecute TLBIMP y especifique el espacio de nombre deseado
tlbimp abc.ocx /primary /keyfile:abc.snk /out:abc.dll /namespace:MyNamespace
Ejecute AXIMP en el ocx y use el conmutador
rcw
para usar su propia DLL de PIA generada manualmente.aximp abc.ocx /source /rcw:abc.dll
Deberias hacer eso.
Sin embargo, hay algunos problemas con la importación de TLB antiguos. No estoy seguro de cómo arreglar eso todavía.