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

Vista: 5752|Resposta: 3

[Fonte] [Operação Prática] Conflitos entre referências a diferentes versões de DLLs que dependem de redirecionamentos

[Copiar link]
Postado em 2022-10-22 10:03:33 | | | |
Requisitos: O projeto precisa referenciar muitos SDKs de terceiros, e alguns deles referenciarão DLLs comumente usadas (como :Newtonsoft.Json.dll), o que fará com que todo o projeto faça referência a diferentes versões da mesma DLL, e o projeto gerará apenas um arquivo com os mesmos resultados compilados da DLL.

Questões simples de dependência de versões de DLL podem ser referenciadas abaixo:

Resolução de conflitos de versões DLL de referência .net/c#
https://www.itsvse.com/thread-4818-1-1.html
Referência:O login do hiperlink está visível.

Se a DLL referenciada não for apenas de uma versão diferente, mas também do publicKeyToken, como isso deve ser resolvido? No caso de Newtonsoft.Json.dll, o projeto faz referência a um arquivo com uma versão diferente e publicKeyToken.



- Newtonsoft.Json.dll, versão:12.0.0.0,publicKeyToken:30ad4fe6b2a6aeed
- Newtonsoft.Json.dll,versão:4.0.0.0,publicKeyToken:null

Uma configuração simples de redirecionamento de referência não resolve o problema, a configuração é a seguinte:

Quando você chama um método SDK de terceiros que depende do Newtonsoft.Json versão 4.0.0.0, você receberá o seguinte erro:

Falhou ao carregar o arquivo ou assembly "Newtonsoft.Json, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null" 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)
Solução: Crie uma nova pasta JSON4 sob o diretório bin, coloque a versão da Newtonsoft.Json.dll 4.0.0.0 sob essa pasta e modifique a configuração da seguinte forma:

(Fim)





Anterior:[Combate real]. NET/C# implementa backups de banco de dados MySQL baseados em MySqlBackup.NET
Próximo:【Combate Prático】Serviços de Download e DLNA do Build Thunder para Docker de Mídia Doméstica
Postado em 2022-10-22 12:02:36 |
Aprenda a aprender
Postado em 24-10-2022 às 10:59:38 |
Esse truque funciona, me incomoda a Newtonsoft.Json.dll do 4.0 e 6.0
Postado em 2022-11-12 13:08:42 |
Aprenda a aprender
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