Carregando uma montagem de qualquer versão
-
20-09-2019 - |
Pergunta
Estou referenciando uma assembléia assinada. Em tempo de execução, não há problema em trabalhar com qualquer versão dessa montagem, não apenas a que eu compilei.
Como conseguir isso?
Solução
Não, isso não vai funcionar. O CLR verificará o número da versão da montagem, esperando obter o que seu programa principal foi compilado. Você teria que usar o <bindingRedirect>
elemento No arquivo app.config para convencê -lo de que uma versão diferente está bem.
Essa é uma ladeira escorregadia. Considere apenas alterar o atributo [AssemblyVersion] se a interface pública da montagem alterou e exigir que os clientes sejam recompilados. Agora, a exceção que você receberá é aquela que identifica um problema real. Esse é outro tipo de ladeira escorregadia, mas você terá muito mais controle.
Para comparação, é assim que todos os conjuntos de base no trabalho .NET Framework. Houve muitos Revisões deles entre .NET 2.0 RTM e 3.5 SP1, incluindo muitos hotfixes invisíveis. Mas o [AssemblyVersion] ainda é 2.0.0.0, a Microsoft apenas modifica o [AssemblyFileVersion].
Outras dicas
No IDE, verifique se a "versão específica" está definida como falsa contra a referência ou adicione <SpecificVersion>False</SpecificVersion>
à referência no CSProj.