Estou tentando fazer algumas melhorias para a estrutura tSQLt e estou quase terminando, mas não posso fazer isso, pois poucos testes relacionados ao certificado que eu não estava tocando ainda estão falhando:
[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|
O erro com falha é:
Expected: %publickeytoken=8c9a92de0f9c7794,%
Actual: tsqltclr, version=1.0.7216.13228, culture=neutral, publickeytoken=8d3f4bf59e4c22fd, processorarchitecture=msil
Vou tentar descrever meu processo de instalação.
Instalei essas fontes de estrutura usando as seguintes diretrizes . No entanto, não pude iniciar o projeto depois disso, pois estava falhando com os seguintes erros e toda a solução de problemas foi feita naquele post do SO :
[exec]
C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (2482,5): erro MSB3325: Não é possível importar o seguinte arquivo de chave: tSQLtOfficialSigningKey.pfx. O arquivo de chave pode estar protegido por senha. Para corrigir isso, tente importar o certificado novamente ou instale manualmente o certificado no CSP de nome forte com o seguinte nome de contêiner de chave: VS_KEY_C20B79DE0583A5C1 [E: \ Source \ tSQLt \ tSQLtCLR \ tSQLtCLR \ tSQLtCLR.csproj] [exec]
C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (2482,5): erro MSB3321: A importação do arquivo de chave "tSQLtOfficialSigningKey.pfx" foi cancelada. [E: \ Source \ tSQLt \ tSQLtCLR \ tSQLtCLR \ tSQLtCLR.csproj]
para passar esse problema, criei novas chaves para cada projeto sem senha:
Vejo que ele criou o snk
arquivo, não como original pfx
. Depois disso, tentei executar a compilação novamente e ela falhou com os erros mencionados acima.
fonte
tsql
framework? Inclui tantos códigos no código do banco de dados, muitas funções do SQL CLR. Eu tentei usar se para 2 grandes projetos ao longo do ano e ele falha muito. Será melhor criar um teste próprio usando .net ou / e SQL e executá-los através de alguma ferramenta para obter execução paralela.Respostas:
Como indicado aqui
O seguinte erro pode ocorrer ao criar projetos para o Microsoft Visual Studio 2008 - 2015.
Erro : Não é possível importar o seguinte arquivo de chave: mykey.pfx. O arquivo de chave pode estar protegido por senha.
SOLUÇÃO 1:
Clique em Iniciar> Todos os Programas> Microsoft Visual Studio> Ferramentas do Visual Studio> Prompt de Comando do Visual Studio. Digite o seguinte comando
Nota : O sn.exe com o parâmetro -i instala um par de chaves em um contêiner de chaves chamado. Re-importar o arquivo PFX em Visual Studio.
SOLUÇÃO 2:
Abra Propriedades do Projeto.
Clique na seção Assinatura.
O Visual Studio agora solicitará a senha. Digite. Você pode receber outra mensagem de erro: ”Foi feita uma tentativa de referenciar um token que não existe”> Você pode simplesmente ignorar esta mensagem.
Clique no botão "Alterar senha"
SOLUÇÃO 3:
Obtenha uma cópia do openssl para windows em slproweb.com ou use uma caixa do Linux, pois elas praticamente a possuem. Execute o seguinte para exportar para um arquivo de chave
Em seguida, nas propriedades do projeto, você pode usar o arquivo PFX
SOLUÇÃO 4:
A solução final para esse problema é desistir do Visual Studio para fins de assinatura e usar o Signtool .
Resposta atualizada
Parece que sua conta do TFS Build Service não tem permissão necessária para acessar o signatureKey.pfx na máquina do agente de construção. Verifique se você tem esse arquivo na máquina do agente de construção primeiro.
Em seguida, siga as etapas abaixo:
sn –i signingKey.pfx VS_KEY_EFCA4C5B6DFD4B4F
(certifique-se de usar o nome da chave que aparece na mensagem de erro)Quando uma senha for solicitada, digite a senha do arquivo pfx
Depois reconstrua-o
Nota: Se você não estiver executando o Visual Studio como administrador, tente fazer isso também.
Mais detalhes, você pode consultar a resposta de Brandon Manchester Não é possível importar o arquivo de chaves 'blah.pfx' - erro 'O arquivo de chaves pode estar protegido por senha'
fonte
Sign the ClickOnce manifests
está desmarcado e DESATIVADO. Eu estou tentando fazer tudo localmente, por isso não há problemas de permissões (Tentei executar esta linha de comando sob o administrador)