En mi proyecto, tengo un problema con su jerarquía de dependencias. Uso una biblioteca (WriteableBitmapExtensions) en mi código, y tengo otra biblioteca de terceros que también usa WriteableBitmapExtensions. Solo la otra biblioteca está fuertemente ligada a una versión específica y más antigua, y mi código necesita la funcionalidad en su última versión.Resolución/uso de versiones de ensamblaje múltiple de dependencias de terceros
Aquí es una representación de las dependencias:
hay preguntas similares & soluciones, sino que resolverlo con estructura de encuadernación en tiempo de ejecución a través de un archivo de configuración, pero no creo que esto sea compatible para una aplicación de Silverlight.
Referencing 2 different versions of log4net in the same solution
Using different versions of the same assembly in the same folder
3rd party libraries refer to different versions of log4net.dll
How to deal with multiple versions of dependencies?
Entonces, ¿hay una manera de resolver estas versiones diferentes de las dependencias de ensamblado en un contexto de Silverlight? Si no lo hay, creo que mis opciones son:
1) Lo más probable es que pueda convencer al proveedor de la biblioteca de terceros de que actualice para usar la última versión de WriteableBitmapExtensions, pero preferiría no depender de ellos manteniéndolo actualizado. Sobre todo porque el proyecto WriteableBitmapExtensions aún se está actualizando y, a menudo, aprovechamos sus nuevas funciones.
2) Como WriteableBitmapExtensions es de código abierto, supongo que puedo recompilar su fuente como un nuevo ensamblado "MyWriteableBitmapExtensions" y usar eso en mi código fuente. Pero volveré a encontrarme con este problema si dos bibliotecas de terceros hacen referencia a diferentes versiones de WriteableBitmapExtensions.
Sospecho que iré con la opción 2, pero me gustaría saber si hay una forma mejor de hacerlo (como el ensamblado en tiempo de ejecución vinculante en las otras preguntas) antes de confirmar/refactorizar. ¡Gracias!
Solo miré el proyecto WriteableBitmapExtensions después de escribir esta respuesta y ahora me doy cuenta de lo que usted llama __v1__ es en realidad casi una versión _pre-beta_, ya que la última es __v1 beta__. Así que la opción (1) se convierte en una opción más: el proveedor de terceros debería estar contento de volver a lanzar una versión que no sea beta cuando esté disponible. –
Ahora he editado esta respuesta de nuevo, ya que parece que Silverlight _no admite el ensamblado de encuadernación :-( –
Sí, esa fue la versión inicial. Espero que este proveedor en particular actualice; son bastante buenos de esa manera. Tengo preocupaciones sobre otras bibliotecas en general y me preguntaba si había una solución completa/adecuada (como el ensamblaje) especialmente porque toda la opción de "fuente abierta, recompilar" podría no estar siempre disponible, pero parece que no Gracias por la nota para actualizar los GUID de identidad y nombre fuerte, podría haber pasado por alto. –