Registrar los ensamblados administrados con COM sin utilizar el GAC
-
18-09-2019 - |
Pregunta
Me pregunto si es posible registrar conjuntos con COM sin tener que registrarse con el GAC. Tenemos que implementar algunas bibliotecas de .net que están expuestos a ASP clásico utilizando un CCW. Sin embargo, las implementaciones son una pesadilla.
Solución
Yeap, el uso regasm.exe
con llave /codebase
para eso. Cuando se utiliza regasm.exe
sin /codebase
que sólo escribe el nombre del archivo de la assmebly al registro y por lo que el tiempo de ejecución de .NET no puede encontrar a menos que el conjunto está en la GAC. Con /codebase
va a escribir la ruta completa y .NET estará encantado de encontrar el montaje cuando el consumidor llama CoCreateInstance()
.
Otros consejos
Sí, puedes usar Regasm en una asamblea sin que sea en la GAC. Por ejemplo He mezclado sitios ASP y ASP.NET con ensamblados .NET en la carpeta bin. Algunos están expuestos a COM y están registradas en situ a partir de la carpeta bin.
Por supuesto, estas asambleas son exclusivos de la aplicación y no son compartidas por otras aplicaciones. No quiere decir que tampoco es posible, es probable que elegir un lugar neutral para copiar dichos archivos DLL a.