Si quiero hacer que un ensamblado .NET se pueda usar como un servidor COM, tengo que agregar un conjunto de atributos y luego usar regasm
para registrarlo como un servidor COM.¿Por qué exactamente el regasm me advierte sobre la firma con un nombre fuerte?
Si el conjunto no está firmado con un nombre seguro regasm
cuando se ejecuta con /codebase
clave muestra una advertencia RA0000
diciendo que el montaje podría interferir con otros conjuntos en el mismo equipo y yo debería firmar con un nombre fuerte, pero el registro tiene éxito e incluso funciona bien.
Los nombres fuertes de AFAIK están destinados a prevenir el supuesto infierno de DLL. Pero COM también estaba destinado a prevenir el infierno de DLL. Si cambio cualquier interfaz expuesta a COM, debo cambiar el GUID o al menos mantener la compatibilidad binaria. Así que firmar con un nombre fuerte no parece agregar nada útil, nada me impide romper las interfaces COM, luego firmar con el mismo par de llaves y tener un infierno completo de DLL.
¿De qué sirve firmar con un nombre seguro en el caso de los ensamblados .NET expuestos a COM?