Instrumentação e Re-Signing Assemblies

Se você precisar reunir informações sobre cobertura de código enquanto você está testando código em um assembly, primeiro você deve instrumentar desse assembly.O processo de instrumentação adiciona código que gera informações de cobertura de código no assembly.Para obter informações sobre assemblies instrumenting para cobertura de código, consulte Como: Obter dados de cobertura de código.

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

Observação:

Para obter mais informações rmation sobre as etapas que ocorrem em um tempo de execução de teste, consulte Visão geral do teste implantação.

Se a nova assinatura for bem-sucedida, a execução de teste será provavelmente termine e produzir resultados corretamente.Se a assinatura não tiver êxito, será gerado um erro, sistema autônomo o seguinte:

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

Para corrigir este erro, tente o seguinte:

  • Reassinar o assembly.Se você tiver o arquivo de chave que foi usado para assinar o assembly, você pode fornecê-lo assim que Visual Studio automaticamente pode assinar novamente o assembly.

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

Assinar novamente o conjunto

Na página cobertura de código do editor de configuração de execução de teste, você pode especificar um arquivo de chave para assinar novamente os binários após instrumentação.Se você estiver testando vários assemblies que tenham sido assinados, Visual Studio tentará assinar novamente todos os assemblies fortes que foram assinados com o arquivo de chave que você especificar.

No editor de configuração de execução de teste, você pode especificar um arquivo de chave que Visual Studio serão usadas para assinar novamente os assemblies de nome forte. Para obter mais informações, consulte o procedimento "Re-Signing conjuntos" no tópicoComo: Obter dados de cobertura de código. Especificar um arquivo de chave adiciona uma etapa re-signing ao processo de execução de teste.Visual Studio irá determinar automaticamente quais assemblies devem ser assinado novamente usando o arquivo de chave que você especificou. Todos os assemblies que podem ser assinado novamente usando esse arquivo de chave serão assinado novamente.

Observação:

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

A nova assinatura de módulos (assemblies) ocorre incompleta ou não as nos seguintes casos:

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

  • Se o arquivo de chave for protegido por senha, a nova assinatura irá falhar.

  • Somente um arquivo de chave é suportado por tempo de execução de teste.Considere, por exemplo, um tempo de 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.Como você pode escolher apenas um arquivo de chave, os assemblies que precisam de Outros arquivo de chave não irão ser assinado novamente e teria que ser assinado novamente manualmente. Se for deixado alguns módulos (assemblies) não assinado, será gerado um erro no nível de execução de teste.Neste csistema autônomoe, você pode optar por desabilitar a verificação de assinatura, sistema autônomo descrito em desabilitar a verificação de assinatura.

desabilitar a verificação de assinatura

Se a nova assinatura falhar — por exemplo, se o arquivo de chave correto não estiver disponível, você pode optar por desabilitar a verificação de assinatura, para este assembly durante o execução de teste.Para fazer isso, use o Ferramenta Strong Name (Sn.exe) com o –Vr opção, sistema autônomo mostrado aqui:

SN - VR < nome assembly >

Isso desativa a verificação de nome forte, para o assembly especificado somente no computador no qual você está executando o comando.

Observação:

Se você estiver executando testes remotamente e precisar desabilitar assinatura da versão ification, você deve incluir o comando SN.exe nos scripts de instalação e limpeza que serão executados no computador remoto.

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

Depois de concluir a execução de teste, reative a verificação de assinatura.Para fazer isso, use o comando SN.exe com o –Vu opção, conforme mostrado aqui:

SN-< nome assembly > VU

Uma maneira recomendada para desabilitar e reativar a verificação de assinatura é usar os comandos SN.exe em scripts.Você pode desabilitar a verificação em um script de instalação e reativar a verificação em um script de limpeza.

Observação:

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

Depois que você colocou os comandos SN nos arquivos de script separada, especifique os arquivos de script na página de instalação e scripts de limpeza do editor de configuração de execução de teste.Para obter mais informações, consulte Como: Especifique uma configuração de execução de teste.Para obter informações sobre a ordem na qual essas e outras etapas ocorrem em um execução de teste, consulte Visão geral do teste implantação.

Consulte também

Tarefas

Como: Especifique uma configuração de execução de teste

Como: Obter dados de cobertura de código

Como: Assinar um assembly com um nome forte

Conceitos

Visão geral do teste implantação

Assemblies de Nomes Fortes

Referência

Ferramenta Strong Name (Sn.exe)