2010-11-21 105 views
13

No sé dónde me salió mal. Cuando lo construyo, busco la ruta predeterminada para que la DLL inicie sesión. Aunque he especificado la ruta.Error criptográfico al firmar el ensamblado en Visual studio

He creado y almacenado mi archivo .snk en la misma ubicación que el archivo DLL.

//Assembly info file for errorcollection 

using System.Reflection; 
using System.Runtime.CompilerServices; 
using System.Runtime.InteropServices; 

// General Information about an assembly is controlled through the following 
// set of attributes. Change these attribute values to modify the information 
// associated with an assembly. 
[assembly: AssemblyTitle("ErrorCollection")] 
[assembly: AssemblyDescription("")] 
[assembly: AssemblyConfiguration("")] 
[assembly: AssemblyCompany("")] 
[assembly: AssemblyProduct("ErrorCollection")] 
[assembly: AssemblyCopyright("Copyright © 2010")] 
[assembly: AssemblyTrademark("")] 
[assembly: AssemblyCulture("")] 

// Setting ComVisible to false makes the types in this assembly not visible 
// to COM components. If you need to access a type in this assembly from 
// COM, set the ComVisible attribute to true on that type. 
[assembly: ComVisible(false)] 

// The following GUID is for the ID of the typelib if this project is exposed to COM 
[assembly: Guid("2c17131b-0ae3-4146-a797-308f5958e819")] 

// Version information for an assembly consists of the following four values: 
// 
//  Major Version 
//  Minor Version 
//  Build Number 
//  Revision 
// 
// You can specify all the values or you can default the Build and Revision Numbers 
// by using the '*' as shown below: 
// [assembly: AssemblyVersion("1.0.*")] 
[assembly: AssemblyVersion("1.0.0.0")] 
[assembly: AssemblyFileVersion("1.0.0.0")] 
[assembly: System.Reflection.AssemblyKeyFile(@"D:\Services\bin\ErrorCollection.snk")] 

me sale el siguiente error:

"Cryptographic failure while signing assembly 'D:\Services\ErrorCollection\obj\Debug\ErrorCollection.dll' -- 'Error reading key file 'D:\Services\bin\ErrorCollection.snk' -- The system cannot find the file specified. ' ErrorCollection"

+0

¿Está realmente el snk en D: \ Services \ bin \ ErrorCollection.snk? –

+0

sí lo he visto. está ubicado exactamente donde lo especifiqué. –

+0

¿Hay una explicación de por qué se cerró esta pregunta? Para que tenga una idea de lo que no se debe publicar. – Mahesh

Respuesta

2

La ruta debe ser relativa a la asamblea.

Consulte el siguiente conocimiento base.

De ahí que trate de cambiar

@ "D: \ Servicios \ bin \ ErrorCollection.snk"

a ser algo así como (aquí estoy asumiendo que es cuatro niveles de seguridad en la unidad raíz d)

@ ".. \ .. \ .. \ .. \ Services \ bin \ ErrorCollection.snk"

1

Trate de crear nueva SNK con el mismo nombre y borrando el viejo

Esto funcionó para m mi. Adivinar que el snk se dañó de alguna manera

8

Compruebe los derechos de acceso a la carpeta Keys en la máquina local y otorgue permisos al usuario de VS.

C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys 
+0

Tuve el mismo problema y lo resolví de manera similar, consulte https://github.com/nosami/Omnisharp/issues/150 – vexe

+0

Conclusión perfecta. Cambié el propietario a los administradores del grupo local de esa carpeta y olvidé agregarles permisos. – Gandarez

0

también se puede simplemente desactivar la firma en su VisualStudio

2

Para mí este problema ocurrió después de actualizar a Windows 10. La ubicación de los MachineKeys se encuentra entonces en un lugar diferente a saber

C : \ ProgramData \ Microsoft \ Crypto \ RSA

RightHaga clic en MachineKeys y asegúrese de que se hayan establecido todos los privilegios.

+0

Para futuros lectores ... esta respuesta resolvió mi problema. PERO también me encontré con un problema de "concesión de permisos .... como se ve en esta url. https://social.technet.microsoft.com/Forums/windowsserver/en-US/db04b57c-7684-4e52-8e1a-5e4407f6e2ab/windows-2012-failed-to-enumerate-objects-in-the-container-access- denied? forum = winserver8gen – granadaCoder

+0

es posible que no obtenga ese problema de otorgamiento de permisos. pero si lo hace, siga la url en mi comentario anterior O busque en internet la frase "Error al enumerar objetos en el contenedor".Acceso denegado "pero después de superar el problema de otorgar permisos ... esta respuesta salvó el día. – granadaCoder

1

Haga clic derecho sobre el proyecto -> Propiedades -> Registro "Firmar el ensamblado"

1

Lo que lo fijó para mí era asegurarse de que estaba corriendo Visual Studio como administrador.

Cuestiones relacionadas