In my project, I have a problem with its dependency hierarchy. I use a library (WriteableBitmapExtensions) in my code, and I have another 3rd party library which also uses WriteableBitmapExtensions. Only the other library is strongly tied to a specific, older version, and my code needs the functionality in its latest version.
Here's a depiction of the dependencies:
There are similar questions & solutions but they resolve it with assembly binding at runtime via a config file, but I don't think this is compatible for a Silverlight application.
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?
So is there a way to resolve these different versions of assembly dependencies in a Silverlight context? If there isn't, I figure my options are:
1) Most likely I can convince the vendor of the 3rd party library to update to use the latest version of WriteableBitmapExtensions, but I'd prefer to not be dependent on them keeping it up-to-date. Especially since the WriteableBitmapExtensions project is still being updated and we're often taking advantage of their new features.
2) Since WriteableBitmapExtensions is open-source, I suppose I can recompile its source as a new assembly "MyWriteableBitmapExtensions" and use that in my source code. But I'll run into this issue again if two 3rd party libraries reference different versions of WriteableBitmapExtensions.
I suspect I'll be going with option 2, but I'd like to know if there's a better way of doing this (like the runtime assembly binding in the other questions) before I commit/refactor. Thanks!