title: How to make odp.net 12c to work with other oracle client
body: <p>I have oracle 10g client(full) and 11g instant client installed on my machine.
  I am trying to use ODP.NET 12c. Here is what I did.</p>
  
  <ol>
  <li>Added Oracle.DataAccess.dll to References.</li>
  <li>Copied OraOps12.dll to the folder where my executable is.</li>
  </ol>
  
  <p>When running I got "Unable to load DLL 'OraOps12.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)".</p>
  
  <p>I think it could be due to dependency issue. So I further copied 12c's</p>
  
  <ul>
  <li>oci.dll </li>
  <li>oraociei12.dll </li>
  <li>orannzsbb12.dll</li>
  </ul>
  
  <p>I then still got other dependency errors. I don't want to copy the whole InstantClient though. </p>
  
  <p>My goal is to get the app to work with other versions of Oracle client. 
  Our customers have different version of Oracle client installed. So any way to get the app (ODAC12c) work with customers' current version of Oracle client without having to install 12c client? </p>
  
  <p>Thanks, </p>
  
  <p>Update:
  I forgot to mention a few things</p>
  
  <ol>
  <li><p>my ODAC is 32bit and I compiled my app on x86. </p></li>
  <li><p>I didn't use Oracle.ManagedDataAccess.dll because it does not include BULKCOPY classs. If anyone knows a version of Oracle.ManagedDataAccess.dll that includes bulkcopy class please let me know. </p></li>
  <li><p>Our customers already has different versions of Oracle client installed for other apps and they don't want to change their environment just for this new app. So my goal becomes to make one version of ODAC in my app work with different versions of existing Oracle client (each customer environment is different). Is this possible and if yes, how? </p></li>
  </ol>