Estoy tratando de hacer algunas mejoras para el marco tSQLt y en su mayoría estoy terminado, pero no puedo hacerlo, ya que fallan algunas pruebas relacionadas con el certificado que no estaba tocando:
[exec] |18|[InstallExternalAccessKeyTests].[test creates correct certificate in master] | 120|Failure|
[exec] |19|[InstallExternalAccessKeyTests].[test tSQLt can be set to EXTERNAL ACCESS after InstallExternalAccessKey executed] | 333|Failure|
[exec] |20|[InstallExternalAccessKeyTests].[test tSQLtExternalAccessKey install data is signed with same key as tSQLt.clr] | 10|Failure|
El error de falla es:
Expected: %publickeytoken=8c9a92de0f9c7794,%
Actual: tsqltclr, version=1.0.7216.13228, culture=neutral, publickeytoken=8d3f4bf59e4c22fd, processorarchitecture=msil
Trataré de describir mi proceso de instalación.
Instalé las fuentes de este marco utilizando las siguientes pautas . Sin embargo, no pude comenzar el proyecto después de eso, ya que estaba fallando con los siguientes errores y toda la resolución del problema se realizó en esa publicación SO :
[exec]
C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (2482,5): error MSB3325: No se puede importar el siguiente archivo de clave: tSQLtOfficialSigningKey.pfx. El archivo de clave puede estar protegido por contraseña. Para corregir esto, intente importar el certificado nuevamente o instale manualmente el certificado en el CSP de nombre seguro con el siguiente nombre de contenedor de clave: VS_KEY_C20B79DE0583A5C1 [E: \ Source \ tSQLt \ tSQLtCLR \ tSQLtCLR \ tSQLtCLR.csproj] [exec]
C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (2482,5): error MSB3321: se canceló la importación del archivo de clave "tSQLtOfficialSigningKey.pfx". [E: \ Source \ tSQLt \ tSQLtCLR \ tSQLtCLR \ tSQLtCLR.csproj]
Para solucionar este problema, he creado nuevas claves para cada proyecto sin contraseña:
Veo que creó el snk
archivo, no tan original pfx
. Después de eso, intenté ejecutar la compilación nuevamente y fallé con los errores que mencioné anteriormente.
fuente
tsql
framework? Incluye muchos códigos en el código de su base de datos, muchas funciones SQL CLR. He intentado usar if para 2 grandes proyectos durante el año y falla mucho. Será mejor crear su propia prueba usando .net o / y SQL y ejecutarlos a través de alguna herramienta para obtener una ejecución paralela.Respuestas:
Como se indica aquí
El siguiente error puede ocurrir al crear proyectos para Microsoft Visual Studio 2008 - 2015.
Error : no se puede importar el siguiente archivo de clave: mykey.pfx. El archivo de clave puede estar protegido por contraseña.
SOLUCIÓN 1:
Haga clic en Inicio> Todos los programas> Microsoft Visual Studio> Herramientas de Visual Studio> Símbolo del sistema de Visual Studio. Escribe el siguiente comando
Nota : El sn.exe con el parámetro -i instala un par de claves en un contenedor de claves denominado. Vuelva a importar el archivo PFX en Visual Studio.
SOLUCIÓN 2:
Abrir propiedades del proyecto.
Haga clic en la sección Firma.
Visual Studio ahora le pedirá la contraseña. Ingresarlo. Es posible que reciba otro mensaje de error: "Se intentó hacer referencia a un token que no existe"> Simplemente puede ignorar este mensaje.
Haga clic en el botón "Cambiar contraseña"
SOLUCIÓN 3:
Obtenga una copia de openssl para Windows en slproweb.com o use un cuadro de Linux, ya que casi todos lo tienen. Ejecute lo siguiente para exportar a un archivo clave
Luego, en las propiedades del proyecto, puede usar el archivo PFX
SOLUCIÓN 4:
La solución final para este problema es renunciar a Visual Studio para firmar y usar Signtool en su lugar.
Respuesta actualizada
Parece que su cuenta de TFS Build Service no tiene permiso requerido para acceder a la firmaKeyKey.pfx en la máquina del agente de compilación. Asegúrese de tener este archivo en la máquina del agente de compilación primero.
Luego siga los pasos a continuación:
sn –i signingKey.pfx VS_KEY_EFCA4C5B6DFD4B4F
(asegúrese de utilizar el nombre de la clave que aparece en el mensaje de error)Cuando se le solicite una contraseña, escriba la contraseña para el archivo pfx
Luego reconstruirlo
Nota: Si no está ejecutando Visual Studio como administrador, intente hacerlo también.
Más detalles puede consultar la respuesta de Brandon Manchester No se puede importar el archivo de claves 'blah.pfx' - error 'El archivo de claves puede estar protegido con contraseña'
fuente
Sign the ClickOnce manifests
está desmarcado y DESACTIVADO. Estoy tratando de hacer todo localmente, por lo que no hay problemas de permisos (he intentado ejecutar esta línea de comando bajo el administrador)