Es posible reemplazar una referencia a un ensamblado con un nombre fuerte por una referencia "débil"?

Estoy escribiendo una herramienta .NET que requiere la biblioteca SMO de SQL Server. No me importa si es la versión de Server 2005 (9.0), 2008 (10.0) o 2008 R2 (probablemente 10.5, no verificó). La biblioteca SMO se instala junto con SQL Server, por lo que puedo suponer con seguridad que en cualquier sistema con SQL Server instalado, alguna versión de la biblioteca SMO también está disponible.

Desafortunadamente, las bibliotecas SMO tienen un nombre fuerte: si agrego una referencia a SMO 9.0 en mi proyecto, fallará FileNotFoundException) si solo SMO 10.0 está presente en el sistema del cliente, y viceversa.

¿Hay alguna forma de decirle al compilador queningun versión de la biblioteca está bien para mí? ¿O realmente tengo que distribuir 3 versiones idénticas de mi herramienta, cada una compilada en una versión diferente de SMO?

Descargo de responsabilidad: sé que las bibliotecas SMO (y las bibliotecas requeridas por las bibliotecas SMO) se pueden redistribuir. Pero hay una gran diferencia entre (a) un delgado EXE independiente de 100 KB y (b) un paquete de configuración completo que instala una gran cantidad de requisitos previos.

Descargo de responsabilidad 2: conozco los siguientes duplicados:

c #: ¿puede hacer una referencia de ensamblaje "débil" a un ensamblaje con nombre seguroNecesita un ensamblaje de C # para hacer referencia a un ensamblaje con un nombre muy ampl

Sin embargo, las soluciones proporcionadas no se ajustan. En la pregunta 1, el desarrollador tiene control sobre la DLL referenciada (que yo no tengo); en la pregunta 2, el desarrollador tiene control sobre los sistemas de destino (que yo tampoco).

Respuestas a la pregunta(3)

Su respuesta a la pregunta