Tengo una biblioteca de clases firmada para la que quiero crear ensamblajes a través de la herramienta sgen. Sin embargo, me da un error cuando trato de ejecutar el siguiente comando:No se puede generar una clase temporal: error criptográfico al firmar el ensamblado
$ sgen.exe /a:testsign.dll /force /compiler:/keyfile:..\..\testsign.pfx /verbose /n
Error: Unable to generate a temporary class (result=1).
error CS1548: Cryptographic failure while signing assembly '[...path...]\TestSign.XmlSerializers.dll' -- 'Error signing assembly - - The parameter is incorrect. 'If you would like more help, please type "sgen /?".
he comprobado el error en MSDN que establece que
CS1548 occurs when assembly signing fails. This is usually due to an invalid key file name, an invalid key file path, or a corrupt key file.
Sin embargo, acabo de crear la clave, la ruta es correcta y que yo sepa, Visual Studio 2010 no crea claves corruptas.
Este problema es bastante simple de reproducir.
- Usando el código pasted here cree una nueva biblioteca de clases.
- Cree dos clases, una
class TestSigning
y unoclass Model
- Ir al proyecto propiedades> Firma y comprobar el "Firme esta asamblea"
- crear un nuevo archivo de clave de nombre seguro
- abren en Visual Studio Comando (2010)
- localice el archivo DLL y ejecutar
sgen /a:<dllname> [... as above ...]
Mi conjetura es algo con la clave pública del archivo de claves .. pero no puedo encontrar ninguna fuente en cuanto a cómo informo sgen
de la contraseña que he usado para proteger mi archivo de clave.
No estoy seguro de cómo proceder. los otros hilos que he visto aquí en SO tienen el mismo "encabezado" de error unable to generate temporary class
pero diferentes detalles de error, para los cuales ninguno tiene el Cryptographic failure
(que he encontrado).
no funciona :) El mismo problema que persiste @Default –
funcionó hace 3 años cuando me envió esta respuesta. Si tiene un problema, ¿puedo sugerir que publique una nueva pregunta? (si lo desea, puede vincular esta pregunta y explicar por qué no le ayudó para que no se cierre como un duplicado) – Default