Oracle.DataAccess все еще пытается получить доступ к oraops12.dll после удаления

Сначала у меня на машине есть клиенты Oracle 11 и 12. Но когда я пытаюсь использовать 11g версию oracle.dataacess.dll.

Я уже удаляю регистр 12c в regedit и останавливаю службу и связанные с machince.config. но программа была выкинута "Невозможно загрузить oraops12.dll ..".

По какому пути этот oracle.dataacess найти конфиг для dll? Почему все равно пытался загрузить oraops12, а не oraops11.

Заранее спасибо.


person LLF    schedule 07.01.2015    source источник
comment
У вас все еще может быть версия ODP.NET 12c в gac вместе с библиотеками DLL политик. Библиотеки dll политик могут вызывать попытку ODP.NET 11 загрузить ODP.NET 12.   -  person Christian Shay    schedule 08.01.2015
comment
Как я могу удалить эту dll политики?   -  person LLF    schedule 08.01.2015
comment
Используя командную строку Visual Studio, введите gacutil / u msdn.microsoft.com/en-us/library/ex0ss12c%28v=vs.110%29.aspx   -  person Christian Shay    schedule 08.01.2015
comment
Я очищаю dll, связанную с oracle.dataaccess, в gac, но проблема все еще остается.   -  person LLF    schedule 08.01.2015
comment
Вы тоже удалили DLL политики?   -  person Christian Shay    schedule 08.01.2015
comment
Да, я это уже удалил. Возможно ли это связано с версией .Net?   -  person LLF    schedule 09.01.2015
comment
Я вернулся к использованию версии 12c. Спасибо за помощь!   -  person LLF    schedule 09.01.2015


Ответы (3)


В вашем GAC есть файл политики, который использует тег "bindingRedirect"

Policy.2.112.Oracle.DataAccess.config

Выполните поиск файла (я использую Agent Ransack), затем отредактируйте его.

Содержимое файла выглядит так

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
          <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89B483F429C47342"/>
            <bindingRedirect oldVersion="2.112.2.0-2.112.9999.9999" newVersion="2.121.1.0"/>
        </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>

По какой-то причине, если вы устанавливаете Oracle 12, а затем пытаетесь удалить его (даже используя gacutil.exe / u), перенаправление привязки остается.

На моей машине это было в C: \ Windows \ assembly \ GAC_32 \ Policy.2.112.Oracle.DataAccess \ 2.121.2.0__89b483f429c47342 \ Policy.2.112.Oracle.DataAccess.config

Он недоступен через проводник, используйте поиск агента, чтобы отследить его, затем щелкните его правой кнопкой мыши и откройте в редакторе.

person Aaron Sevivas    schedule 19.05.2015

У меня была эта проблема. Убедитесь, что удалите все папки политик и папки oracle.dataaccess, которые начинаются с 2.12 как в c: \ windows \ assembly, так и в c: \ windows \ Microsoft.net \ assembly. 2.11x означает Oracle 11.x, а 2.12x означает Oracle 12.x.

person Chad Gregory    schedule 22.03.2016

У меня была такая же проблема в Windows Server 2012 ...

Я решил все это, только установив Распространяемый пакет C ++ 2010

person user2523282    schedule 10.07.2017