title: Resolving/using multiple assembly versions from 3rd party dependencies
body: <p>In my project, I have a problem with its dependency hierarchy.  I use a library (<a href="http://writeablebitmapex.codeplex.com/" rel="nofollow noreferrer">WriteableBitmapExtensions</a>) 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.</p>
  
  <p>Here's a depiction of the dependencies: <img src="https://i.stack.imgur.com/9PWiW.gif" alt="dependency tree"></p>
  
  <p>There are similar questions &amp; 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.</p>
  
  <p><a href="https://stackoverflow.com/questions/3158928/referencing-2-differents-versions-of-log4net-in-the-same-solution">Referencing 2 different versions of log4net in the same solution</a></p>
  
  <p><a href="https://stackoverflow.com/questions/2460542/using-different-versions-of-the-same-assembly-in-the-same-folder">Using different versions of the same assembly in the same folder</a></p>
  
  <p><a href="https://stackoverflow.com/questions/4381195/3rd-party-libraries-refer-to-different-versions-of-log4net-dll">3rd party libraries refer to different versions of log4net.dll</a></p>
  
  <p><a href="https://stackoverflow.com/questions/225810/how-to-deal-with-multiple-versions-of-dependencies">How to deal with multiple versions of dependencies?</a></p>
  
  <p>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:</p>
  
  <p>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.</p>
  
  <p>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.</p>
  
  <p>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!</p>