Cómo utilizar el redireccionamiento de enlace de ensamblaje para ignorar los números de revisión y comstackción

Tengo varias aplicaciones .NET en C #, junto con una API para que puedan acceder a la base de datos. Quiero poner todas las versiones de la API en la base de datos y pedirles que seleccionen el número más alto de revisión y comstackción, pero mantengan el número mayor y menor con el que se crearon. Básicamente, cuando hago referencia a API 1.2.3.4 , quiero que la referencia sea 1.2.*.* que las aplicaciones solo elijan 1.2.3.5 . Veo que puedo hacer esto con los archivos de configuración XML. Preferiría que se cumpliera. Similar a las políticas de publicación, pero sin los archivos adicionales. Podría conformarme con eso. El otro problema son todas las soluciones que veo redireccionan una versión a otra versión específica, no solo a cualquier versión más nueva.

¿Cómo hago esto?

¿Puede alguien señalarme una fuente informativa para la política del editor?

Gracias a la sugerencia de Leppie de utilizar el evento AppDomain.AssemblyResolve , pude resolver un problema similar. Así es como se ve mi código:

  public void LoadStuff(string assemblyFile) { AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve); var assembly = Assembly.LoadFrom(assemblyFile); // Now load a bunch of types from the assembly... } Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) { var name = new AssemblyName(args.Name); if (name.Name == "FooLibrary") { return typeof(FooClass).Assembly; } return null; } 

Esto ignora por completo el número de versión y sustituye la biblioteca ya cargada por cualquier referencia de biblioteca llamada “FooLibrary”. Puede usar los otros atributos de la clase AssemblyName si quiere ser más restrictivo. FooClass puede ser cualquier clase en el ensamblado de FooLibrary.

AppDomain.AssemblyResolve evento AppDomain.AssemblyResolve debería ayudar.