Tenemos una solución con muchos proyectos en ella (probablemente 20 o más). Recientemente, hemos realizado algunos cambios que requieren que un par de esos ensamblajes se puedan llamar desde COM, lo que significa que necesitamos asignarles un nombre seguro. Esas asambleas hacen referencia a otras personas en nuestro proyecto, lo que significa que también necesitan un nombre fuerte. También tienen atributos InternalsVisibleTo, por lo que los ensamblados que se otorgan también deben tener un nombre fuerte.Ventajas/desventajas de ensamblados con nombre seguro/firmado
En lugar de buscar y encontrar qué ensambles necesitan firmar/nombrar con fuerza, les recomendé que simplemente los nombremos todos. Esto ha puesto nervioso a un par de personas. Estoy argumentando que no hay ningún riesgo, pero quieren ventajas y desventajas de la firma de asambleas. Las únicas cosas que he podido llegar a son:
Pros
- es un requisito para llamar a la asamblea desde COM
- Sería nos permitirá poner los ensamblados en la GAC ( que no lo hacemos ahora)
- previene manipulación (que albergan la aplicación, no está instalado en sitios del cliente, por lo que no es tan grande un problema)
Contras
- Se requiere que todas las asambleas que utilizamos en el futuro ser firmado
Tengo dos preguntas específicas:
- diría usted que, en general, es una buena idea para firmar/nombrar asambleas?
- ¿Puedes pensar en otros pros o contras?
¿De dónde viene la idea de que todo debe estar firmado ahora? Son ensamblajes sin firmar que son virales: no se puede hacer referencia a un ensamblaje sin firmar desde un ensamblaje firmado. Puedes hacer lo contrario sin embargo. Los que * deben * firmar se deben a las razones que describió en el primer párrafo. –
BTW: no detiene la manipulación. Puede quitar el SN y cambiar los conjuntos de referencia, y ya está listo. Lo hice como una prueba de concepto en algún software comercial usando Reflector y Reflexil –
@David: e incluso puede hacerlo solo con ilasm e ildasm. @Future David: gracias, cambié el orden de firmado/sin firmar. –