Если сборка, на которую вы ссылаетесь, имеет строгую подпись, CLR не будет загружать ее, если она имеет версию, отличную от той, для которой она была скомпилирована. В этом случае вы можете использовать файл конфигурации, чтобы указать версию, которую вы хотите использовать:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="YouAssemblyNameWithoutDotDll"
publicKeyToken="your-assembly-token"
culture="neutral" />
<bindingRedirect oldVersion="1.0.0.0"
newVersion="2.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
Конечно, это предполагает, что новая версия сборки имеет те же сигнатуры методов, либо вы получите MissingMethodException во время выполнения.