visual studio odp net manageddataaccess framework for example data 11g .net oracle assemblies

.net - studio - oracle.manageddataaccess example c#



No se pudo cargar el archivo o el ensamblaje para Oracle.DataAccess en.NET (9)

Cambié a los ensamblados ODP.NET administrados de Oracle. También tuve que purgar todos los archivos de las aplicaciones web de IIS que usaban los ensamblajes más antiguos. Ahora no tengo ningún conflicto con respecto a las versiones de 32 vs 64 bits cuando depuro en IIS Express vs IIS. Vea el siguiente artículo.

Un disco fácil para .NET

Cuando intento ejecutar un programa simple para acceder a Oracle, recibo este mensaje.

No se pudo cargar el archivo o el ensamblaje ''Oracle.DataAccess, versión = 2.111.7.20, Culture = neutral, PublicKeyToken = 89b483f429c47342'' o una de sus dependencias. El sistema no puede encontrar el archivo especificado.

Revisé / windows / assembly y está ahí, pero no está en GAC ( gacutil -l ). No puedo agregar a GAC ​​( gacutil -i [path] . Aparece un ''error desconocido''.

¿Alguien tiene la misma experiencia?


Como se mencionó en la primera respuesta, hay escenarios de 32/64 bits que presentan dificultades de compilación y tiempo de ejecución para los desarrolladores.

La solución siempre es tratar de hacer lo correcto: qué tipo de software y sistema operativo tiene instalado .

Para una pequeña lista de escenarios con el controlador de Oracle y la solución, puede visitar esta post .


En mi caso el error indica que el montaje.

Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342

Está perdido.

Cuando gacutil.exe /l ''Oracle.DataAccess'' el resultado fue:

The Global Assembly Cache contains the following assemblies: Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86 Number of items = 1

En este momento acabo de instalar el cliente oracle: win32_11gR2_client

Luego instalé las herramientas de desarrollo de ODTwithODAC112030_deleloper_tool

Ahora gacutil está diciendo:

The Global Assembly Cache contains the following assemblies: Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86 Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86 Number of items = 2

Solucionado, un caso de montaje totalmente perdido


Estaba compilando en x64, solo uso x86 y resolverá el problema


Intente lo siguiente: En Visual Studio, vaya a Herramientas / Opciones ... Proyectos y soluciones ... Proyectos web ... Asegúrese de que la casilla de verificación Usar la versión de 64 bits de IIS Express esté marcada


La solución es bastante simple, todo depende de cómo defina las cosas en el servidor / estación de trabajo en relación con su proyecto de estudio visual.

Primero verifique la versión de la biblioteca de Oracle que está utilizando, en su caso 2.111.7.20. Luego vaya a la GAC ​​de Windows que se encuentra en la carpeta de inicio> de ensamblaje de Windows.

Desplácese hacia abajo hasta la dll de Oracle, normalmente se llama Oracle.DataAccess u Oracle.Web. Encuentre la versión correcta y anote si dice x86 o AMD64.

En Visual Studio, asegúrese de que su plataforma de destino sea la misma que la dll en la GAC, por lo que si dice x86 en la carpeta de GAC, asegúrese de que la plataforma de destino sea x64 y otra x64. Puede establecer esto en las propiedades del proyecto de Visual Studio, en el objetivo de compilación / plataforma.

También asegúrese de que su referencia, bajo las referencias en su proyecto, apunte a esta misma versión exacta en su computadora de desarrollo.

Con esto todo debería funcionar bien.

Lo que normalmente hago es verificar el servidor primero, ya que a menudo es más fácil en un entorno empresarial cambiar la versión de sus dependencias locales, y luego pedirle a un administrador del servidor que realice una instalación de una DLL diferente.


Tuve el mismo problema.

La solución fue cambiar la plataforma de mi solución actual a x64.

Para hacerlo en Visual Studio, haga clic con el botón derecho en solución> Administrador de configuración> Plataforma de soluciones activas.


Voy a darle las respuestas de lo que acabo de ver en Windows Server 2008 R2, que es un sistema operativo de 64 bits. El conjunto de aplicaciones de bibliotecas que recibí se desarrolló utilizando .net 3.5 x86 con las bibliotecas DLL más antiguas y me quedé atascado porque había instalado los clientes x64 más nuevos de Oracle.

Lo que encontré fue lo siguiente: Instalar el último cliente x64 de Oracle para Windows Server 2008. Creo que este sería el cliente 2.7.0. Cuando seleccione la instalación, asegúrese de hacerlo personalizado y seleccione las bibliotecas .NET. Configure sus archivos tnsnames y pruebe su tnsping contra su fuente de datos.

A continuación, si está ejecutando una aplicación de 32 bits, instale la misma versión del cliente para 32 bits. Además, siga la misma rutina de instalación y seleccione la misma casa.

Cuando termine, verá que tiene una sola aplicación / producto con dos directorios de clientes (Cliente1 y Cliente2).

Si navega al directorio windows / assemblies encontrará que tiene una referencia a Oracle.DataAccess.dll (x2) con una para x86 y otra para AMD64.

Ahora, dependiendo de si tiene desarrolladores o está desarrollando en la máquina usted mismo, puede estar bien aquí, sin embargo, si están usando controladores más antiguos, entonces necesita realizar un último paso.

Navegue hasta el directorio app / name / product / version / client_1 / odp.net / publisher policy / 2.x. Aquí se incluyen dos archivos de políticas. use gacutil / i para instalar Policy.2.111.Oracle.DataAccess.dll en el GAC. Esto redirigirá las llamadas ODP de Oracle heredadas a las versiones más nuevas. Entonces, si alguien desarrolló con el cliente 10g, ahora funcionará con el cliente 11.

FYI - Algunos pueden estar instalando el último ODP.NET con el 2.111.7.20. El cliente principal de Oracle viene con 2.111.7.0 .. No he tenido ningún éxito con el 7.20, pero no tengo problemas con el cliente 7.0.


en su proyecto .net, vaya a la sección de referencia, haga clic derecho en Oracle.DataAccess dll, goto properties.

Cambie la configuración a " Specific Version=False ". Ahora no habrá conflicto de versiones.