Instrumentação e renovando a assinatura de Assemblies

Se você quiser coletar dados de cobertura de código ao testar o código em um assembly, Visual Studio primeiro instrumento esse assembly. O processo de instrumentação adiciona código para o assembly que gera dados de cobertura de código.

Mas se o assembly que você está testando foi assinado com um nome forte, causada pela instrumentação de modificação do código invalida a sua assinatura. Portanto, Visual Studio tenta automaticamente assinar novamente o assembly imediatamente após a etapa de instrumentação.

Se a nova assinatura for bem-sucedida, a execução de teste terminar e produzir resultados corretamente. Se a assinatura for bem-sucedida, um erro, como é gerado:

Strong name verification failed for the instrumented assembly 'SignedLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1696e096eba75082'. Please make sure that the correct key file for re-signing after instrumentation is specified in the test settings.

Para corrigir esse erro, tente o seguinte:

  • Reassinar o assembly. Se você tiver o arquivo de chave que foi usado para assinar o assembly, você pode fornecer, de forma que Visual Studio automaticamente podem reassinar o assembly.

  • Desativar a verificação de assinatura. Você pode desativar a verificação de assinatura no computador no qual você está testando o assembly. Esta ação se aplica somente aos assemblies você especificar.

Reassinar o Assembly

Nas configurações do teste para o adaptador de dados de diagnóstico para cobertura de código, você pode especificar um arquivo de chave para assinar novamente os binários após a instrumentação. Se você estiver testando vários assemblies assinados, Visual Studio irá tentar assinar novamente todos os assemblies fortes que foram assinados com o arquivo de chave que você especificar.

Especificar um arquivo de chave adiciona uma etapa re-signing o processo de execução de teste. Visual Studioautomaticamente determinará quais assemblies devem ser assinado novamente usando o arquivo de chave que você especificou. Todos os assemblies que podem ser assinado novamente usando o arquivo de chave serão assinado novamente.

ObservaçãoObservação

Módulos (assemblies) pode ser assinado novamente usando somente um arquivo de chave, não um nome de chave.

Renovando a assinatura de assemblies ocorre de forma incompleta ou não nos seguintes casos:

  • Se o arquivo de chave não estiver disponível, Visual Studio não pode assinar novamente o assembly. Você pode tentar regenerar o arquivo de chave e tente novamente reassinar o assembly.

  • Se o arquivo de chave é protegida por senha, renovando a assinatura falhará.

  • Apenas um arquivo de chave é suportado por execução de teste. Por exemplo, considere uma execução de teste que faz referência a vários assemblies. Alguns desses assemblies foram assinadas usando um arquivo de chave e outros foram assinados usando um arquivo de chave diferente. Porque você pode selecionar apenas um arquivo de chave, assemblies que precisam de outro arquivo de chave não irá ser assinado novamente e tem de ser assinado novamente manualmente. Se alguns assemblies são deixados unsigned, será gerado um erro no nível de execução de teste. Nesse caso, convém desativar a verificação de assinatura, conforme descrito em Desativar a verificação de assinatura.

Desativar a verificação de assinatura.

Se a nova assinatura falhar, você pode selecionar para desativar a verificação de assinatura para este assembly, a duração da sua execução do teste. Por exemplo, a nova assinatura falhará se o arquivo de chave correto não estiver disponível. Para desativar a verificação de assinatura, use o Sn. exe (ferramenta de nome forte) com o –Vr opção, conforme mostrado aqui:

SN - Vr < assembly name >

Isso desativa verificação de nome forte, o assembly especificado somente no computador no qual você pode executar o comando.

Você pode fazer isso somente se você tem permissões suficientes.

Após a execução de teste, reative a verificação de assinatura. Para fazer isso, use o comando sn. exe usando o –Vu opção, conforme mostrado aqui:

< nome do assembly > SN - Vu

ObservaçãoObservação

É importante que você reative a verificação de assinatura. Se a verificação de assinatura permanece desativado, ele pode causar problemas de segurança.

Consulte também

Tarefas

Como: Configurar cobertura de código usando configurações de teste para testes automatizados

Como: Obter dados de cobertura de código

Criar um teste automatizado de configurações para executar testes a partir de Visual Studio

Criar configurações de teste para testes automatizados, como parte de um plano de teste

Como: Assinar um Assembly com um nome forte

Referência

Sn. exe (ferramenta de nome forte)

Conceitos

Assemblies de nomes fortes