viernes, 4 de febrero de 2011

DLLs necesarios para una app portable con ODP .NET

Normalmente cuando creamos una aplicacion .NET con conexion a la base de datos Oracle, tenemos el cliente de Oracle instalado en nuestras maquinas y el DLL necesario esta en la gac entonces no necesitamos referirlo, todo funciona como se espera.

El problema esta cuando lo pasamos a un servidor de producción, no siempre encontraremos la versión esperada, es muy posible que la versión  instalada en el servidor sea utilizada por varias aplicaciones, y se te sea difícil instalar la versión que tu quieras elegir.

Para conseguir una aplicación con el driver portable, necesitas los siguientes DLLs(Todos están en el directorio donde instalaste ODP for .NET:
  • msvcr71.dll
  • oci.dll
  • ociw32.dll
  • Oracle.DataAccess.dll
  • orannzsbb11.dll
  • oraocci11.dll
  • oraociicus11.dll
  • OraOps11w.dll

Te recomiendo que en tu solución crees una carpeta y ahí copies todos los DLLs necesarios, después solo tienes que referirlos en tu proyecto y cambias las propiedad Copy Local de todos los DLL necesarios a True.

No podrás depender del tsnames.ora  así que utiliza este tipo de connection string:

Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;

Con esto no necesitaras instalar el cliente de oracle, para la instalación de tu aplicación no necesitaras investigar si tu servidor soporta tu version de ODP .NET, y podrás tener TU el control de cual versión de ODP quieres usar.


1 comentario:

  1. Te hago una consulta, estoy realizando lo que indicas pero al momento de agregar las dll me dice que no son válidas. ¿Alguna sugerencia?

    ResponderEliminar