title: Could not load file or assembly 'CrystalDecisions.CrystalReports.Engine' / Windows 2012 server
body: <p>we have an application written in .NET 4.0 which uses this SAP Crystal Reports. While the same build (x86) is working perfectly OK in Windows 2003/2008 (both x86/x64) with .NET 4.0 framework installed (x86) and CrystalReports runtimes installed (donwladed from SAP pages <a href="http://scn.sap.com/docs/DOC-7824" rel="noreferrer">http://scn.sap.com/docs/DOC-7824</a>) using the 13.0.1.x (32bit_13_0_1.msi).</p>
  
  <p>When the same stuff is installed in MS 2012 server (x64), there is already .NET framework 4.5 pre-installed, thus I was not able to install .NET 4.0, however it looks like it's backwards compatible, because the application is working properly, with exception of the Crystal Reports part, where the application throws an exception.</p>
  
  <p><em>Could not load file or assembly 'CrystalDecisions.CrystalReports.Engine, Version 10.5.3700.0, culture=neutral, PublicKeyToken=blahblah' or one of its dependencies. The system cannot find the file specified.</em> </p>
  
  <p>Of course the runtimes are installed, but for some reason our application can't recognize those DLLs. Personally I don't think it's a build issue as it works properly with same configuration in 2003/2008 server.</p>
  
  <p>We have there only release version installed, so no debugging options are available, nor VS is installed.</p>
  
  <p>Basically we're just performing some tests if the application works properly in 2012 server, but this issue seems impossible to solve. I've spent hours on Google to no avail.
  So any idea what to check is highly appreciated :)</p>
  
  <p>Thanks
  Tomas</p>
  
  <hr>
  
  <p>Edit</p>
  
  <hr>
  
  <p><strong>Solution</strong>: to install older 2008 runtimes.<br>
  <strong>Root cause</strong>: On our build machine we have both runtimes still installed (we need to support older versions as well). In <em>proj</em> files the CR assemblies are not referenced version specific, just by the name. So during the build process the first lowest matching assembly from GAC was used and hence the need to have the CR 2008 installed as well. Solution is to reference the 3rd party assemblies in project files also by version to force the usage of newer ones. </p>