asp.net 3.5 referenciando projeto com referência de assembly gera erro de assinatura / nome forte no teste de unidade

StackOverflow https://stackoverflow.com/questions/4846718

Pergunta

Eu tenho uma referência a um assembly MySQL.Data 5.2.3 em uma camada de dados, ótimo. Atualmente, tenho um pequeno aplicativo de console inteh mesma solução referenciando APENAS ESTA camada de dados que se conecta muito bem. Em seguida, criei um projeto de teste de unidade (também na mesma solução) e referenciei esse mesmo projeto de camada de dados, e daí obtive:

O método de teste LTTests.WrapperTest.LoginTest lançou a exceção: System.IO.FileLoadException: não foi possível carregar o arquivo ou assembly 'MySql.Data, Version= 5.2.3.0, Culture= neutral, PublicKeyToken= c5687fc88969c44d' ou um dos suas dependências. Não foi possível verificar a assinatura de nome forte. O assembly pode ter sido adulterado ou foi assinado com atraso, mas não foi totalmente assinado com a chave privada correta. (Exceção de HRESULT: 0x80131045).

Estou tentando entender ... Posso fazer isso para um console exe e funciona, mas não é um teste de unidade? Isso me deixa nervoso para construir em algo aparentemente falho, mas não sei o que fazer a seguir. Estou perdido, venho adicionando várias coisas procurando o que está acontecendo e não tenho ideia.

A exceção é da camada de dados e não do teste (de acordo com a pilha), então é como se o teste estivesse chamando o método da camada (duh) e a camada de dados vomitasse, mas não para o console?

Obrigado.

Foi útil?

Solução

Esta não é a resposta de por que há um erro, mas uma maneira possível de descobri-lo:

Você pode usar o "Assembly Binding Log Viewer" (Fuslogvw.exe) que pertence ao dotnet sdk para descobrir o que está carregado e por quê.

Se o registro estiver habilitado, ele pode mostrar quais assemblies são carregados de qual diretório e qual assembly causou o carregamento.

Para obter detalhes, consulte http:// msdn.microsoft.com/en-us/library/e74a18c4(v=vs.80).aspx

então, pode haver versões diferentes de MySql.Data por aí e a mensagem de erro significa que o número da versão encontrada não é o esperado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top