title: Strongly named assembly in place of a non-named assembly
body: <p>Is there a way to use a strongly named assembly in place of a non-named assembly?</p>
  
  <p>The real question is this:</p>
  
  <p>I am creating a library (eg: SqliteOrm.dll) (Portable Class Library in my instance, by the problem is with any type) that references another library (eg: System.Data.dll) which differs depending on the platform (iOS, Android, WP, desktop and WinRT). This library (SqliteOrm.dll) is then consumed by applications from each platform, but will switch System.Data.dll.</p>
  
  <p>However, System.Data.dll exists in the GAC with a strong name. This causes an exception when the library is consumed:</p>
  
  <pre><code>System.IO.FileNotFoundException: 
  Could not load file or assembly 'System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. 
  The system cannot find the file specified.
  </code></pre>
  
  <p>The reason I am doing this is because System.Data.dll does not exist in WP but does in M4A. I use the native System.Data.dll on M4A, but my own version on WP. My version only includes the neccessary types, so it does differ in this way.</p>
  
  <p>I am currently testing using Metro and Desktop apps, and this is where the exception is occuring. I vaguely recall something about the fact that the M4A runtime doesn't actually do the check, but I would like my library to work on the desktop as well.</p>
  
  <p>Does anyone have any tips for me, or is this whole thing a bad practice?</p>