title: Why does renaming a dll extension (I.e. to dllold) cause a FileNotFound exception at runtime?
body: <p>It appears at some point a dev working on one of our sites had to manually update a production dll, which we'll call "MyLibrary.dll". In doing so, they changed the old dll file extension to "dllold". Upon loading this site, we received a System.IO.FileNotFoundException error, that said <code>Could not load file or assembly 'MyLibrary.dllold' or one of its dependencies. The system cannot find the file specified.</code> We received this error even though both "MyLibrary.dll" and "MyLibrary.dllold" were in the correct directory. It was only after removing this "dllold" file, or completely removing the "dll" part of the extension (i.e. MyLibrary.old) that we were able to load the website.</p>
  
  <p>So I'm wondering why exactly this happens? It almost seems like whatever part of the .NET framework pulls in the dlls at runtime only looks for "dll" and doesn't care about anything after, but that wouldn't explain why it always grabs the ".dllold" library and not the working ".dll" library. </p>
  
  <p>For reference we're using .NET version 4.0 and ASP.NET version 4.6.</p>