Наш продукт использует ODP.NET 11g (11.2.0.4 для конкретного). Мы хотим перейти на Oracle 12c, но все же хотим поддерживать предыдущую версию (версия с ODP.NET 11g). У нас есть несколько сборок, в которых используется Oracle.DataAccess.dll. ссылаясь на эти проекты в visual studio, для параметра «Специфическая версия» установлено значение «false».ODP.NET 11.2.04 и 12.1.0.2 Бок о бок
На машине разработчика, когда установлен клиент Oracle 12C, были собраны последние файлы Oracle.dataaccess.dll. Это связано с политикой издателя, которая устанавливается с клиентом Oracle 12c. Я проверил путь oracle.dataaccess, dll в visual studio для соответствующих проектов, и он показывает путь к клиенту ODP.NET 12c. Это работает без каких-либо изменений кода.
Теперь у нас есть проблема с получением этой работы на нашей машине для сборки. Строительная машина должна строить версию 11g, а также версии 12c нашего продукта одновременно.
У нас уже установлен клиент Oracle 11.2.0.4 на машине сборки. Теперь мы установили клиент Oracle 12c на машине сборки. Когда я проверил ссылки в visual studio, путь oracle.dataaccess.dll обновлен, чтобы выбрать из odp.net 12c.
Ниже приводится мой план решения этой проблемы. Когда я хочу построить версию 11g
- Удалите связанный с 12c файл политики и oracle.dataaccess dll из GAC.
- Удалите путь Oracleclient 12c из переменной PATH. Путь уже содержит путь OracleClient 11g. Удаление пути 12c оставляет переменную пути только с контуром клиента Oracle 11. я бы реверс (деинсталляция 11g, связанные с GAC DLLs и установки 12с и добавьте DLLs 12с Путь к переменной окружения Path)
Но после выполнения шагов 1,2 для построения 11g версии, я все еще вижу ссылки в визуальной студии - до версии 12c. Я что-то пропустил, или я полностью ошибаюсь?