Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 30883|Resposta: 1

[Fonte] Resolução de conflitos de versões DLL de referência .net/c#

[Copiar link]
Publicado em 04/06/2018 16:02:54 | | | |
Falhou ao carregar o arquivo ou assembly "Common.Logging, Version=2.1.1.0, Culture=neutral, PublicKeyToken=af08829b84f0328e" ou uma de suas dependências. A definição do manifesto de montagem encontrada não corresponde à referência de montagem. (Exceção do HRESULT:0x80131040)

Descrição: Uma exceção não tratada ocorreu durante a execução da requisição web atual. Verifique as informações do rastreamento da pilha para detalhes sobre o erro e de onde ele veio no seu código que causou o erro.

Detalhes da exceção: System.IO.FileLoadException: Falhou ao carregar o arquivo ou assembly "Common.Logging, Version=2.1.1.0, Culture=neutral, PublicKeyToken=af08829b84f0328e" ou uma de suas dependências. A definição do manifesto de montagem encontrada não corresponde à referência de montagem. (Exceção do HRESULT:0x80131040)

Erro de fonte:

Uma exceção não tratada foi gerada durante a execução da requisição web atual. Você pode usar as seguintes informações de rastreamento da pilha de exceções para determinar a causa da anomalia e onde ela ocorreu.

Rastreamento de Carga de Montagem: As informações a seguir podem ajudar a determinar por que a montagem "Common.Logging, Version=2.1.1.0, Culture=neutral, PublicKeyToken=af08829b84f0328e" falhou no carregamento.


Às vezes, vemos o erro acima.

Causa do erro

O Projeto A faz referência a xxx.dll, o Projeto B também faz referência a xxx.dll, e o Projeto A refere-se ao Projeto B, como mostrado na figura abaixo:



Tanto o projeto A quanto o projeto B se referem a xxx.dll, mas o projeto A se refere a uma versão superior da DLL, e o projeto B a uma versão inferior da DLL

Solução

<bindingRedirect>element, redirecione uma versão assembly para outra.

velhaVersão       

  • Propriedades obrigatórias
  • Especifica a versão do conjunto que foi originalmente solicitada. O número da versão assembly está no formato major.minor.build.revision. Cada parte deste número de versão tem um valor válido entre 0 e 65535.
  • Você também pode especificar um intervalo de versões no seguinte formato:
  • n.n.n.n-n.n.n.n



newVersion

  • Propriedades obrigatórias.
  • Especifica a versão do assembly a ser usada em vez do formato originalmente solicitado: n.n.n.n
  • Esse valor pode especificar uma versão anterior a oldVersion.



Link de documentação:https://docs.microsoft.com/zh-cn ... ingredirect-element

Exemplos oficiais:



Então, minha solução alternativa é configurar assim no web.config:







Anterior:Estou aqui, por favor, prestem mais atenção e aprendam uns com os outros
Próximo:Solução: O instalador usado para instalar o Visual Studio está incompleto
 Senhorio| Publicado em 22/10/2022 10:03:58 |
[Operação Prática] Conflitos entre referências a diferentes versões de DLLs que dependem de redirecionamentos
https://www.itsvse.com/thread-10376-1-1.html
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com