21 октября 2012 г.

Установка Firebird Net Provider для разных версий .Net Framework

Работа с этим провайдером Firebird под .Net Framework для меня в новинку, но, имея за плечами трехлетний опыт работы с провайдером для MySQL, я не ожидал подвоха - а зря. Хотя разработчики и выложили на официальном сайте установочный пакет, процесс установки оказался гораздо сложнее серии кликов по кнопке "Далее". Во-первых. Установщик всего лишь складывает несколько файлов в папку "c:\Program Files\FirebirdClient\", регистрацию в GAC нужно делать ручками, но и здесь заботливо подложены грабельки, о них далее... Во-вторых. Опять же, хотя разработчики и написали, что Version 2.7.0 for .NET 4.0/3.5/2.0 with Entity Framework support, но на самом деле работать с этим провайдером можно только из под 4 фреймворка, 3.5 его не увидит. И так, доделываем работу разработчиков, и устанавливаем дополнительно DDEX Provider for Visual Studio downloads (интегрирует провайдер в Visual Studio для конструирования источников данных непосредственно из IDE) Первое. Не качаем, а если скачали удаляем нафиг msi пакет с оф-сайта. На данный момент актуальной является версия 2.7.0. Находим на сайте архив NETProvider-2.7.7.zip и, если необходимо, NETProvider-2.7.7-NET35.7z. Скачиваем. В первом архиве лежит сборка провайдера под 4 фреймворк, во втором под третий. Создаем в Programm Files папку с говорящим названием FirebirdClient и в ней папки net3.5 и net4.0. Распаковываем содержимое архивов соответствующим образом, каждый в свою папку. Теперь нужно зарегистрировать провайдер в кеше сборок, каждый в своем. Так как в комплекте с Visual Studio идет gacutil только для 4 фреймворка, то для 3.5 нужно искать свой. Лежит он по следующему адресу "c:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\gacutil.exe". Запускаем его и выполняем следующую команду: 

gacutil -i "c:\Program Files\FirebirdClient\net3.5\FirebirdSql.Data.FirebirdClient.dll"

Получаем сообщение, что сборка успешно добавлена в кеш и радуемся. Если получаем вот такое "This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.", то в папку net3.5 попала сборка провайдера для 4 фреймворка Для 4 фреймворка повторяем операцию. gacutil можно запустить как и через Пуск-Программы-Visual Studio 2010-Visual Studio Tools-Командная строка Visual Studio (2010) или же взять его рядышком "c:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\gacutil.exe". Выполняем команду:

gacutil -i "c:\Program Files\FirebirdClient\net4.0\FirebirdSql.Data.FirebirdClient.dll"

Все можно жить и не тужить, писать код для подключения в бд и т.д., не забывая, правда, добавить FirebirdSql.Data.FirebirdClient.dll в Reference. Но для пущего удобства добавим DDEX. Скачиваем FirebirdDDEXProvider-2.0.6.zip, распаковываем в папку "c:\Program Files\FirebirdClient\FirebirdDDEX". Теперь нужно зарегистрировать провайдер и DDEX в machine.config, для каждой версии фреймворка отдельно. Ищем по адресу c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\, открываем machine.config и редактируем:

  
    ...
    
... ... ... ...
Ищем по адресу c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Config\, открываем machine.config и редактируем:


  
    ...
    
... ... ... ...
В папке c:\Program Files\FirebirdClient\FirebirdDDEX\reg_files\VS2010\ открываем на редактирование FirebirdDDEXProvider32.reg находим в нем строку с "CodeBase", заменяем ее на: "CodeBase"="C:\\Program Files\\FirebirdClient\\FirebirdDDEX\\FirebirdSql.VisualStudio.DataTools.dll" сохраняем, запускаем. Далее можно перезагрузить компьютер и радуемся!

Информация взята с блога http://helsq.blogspot.com/

2 комментария:

  1. должно работать на виндовс 8 с VS 2012 Express для Web и c VS 2012 Express для Desktop?

    ОтветитьУдалить
    Ответы
    1. Вряд ли. Проверить не могу, т.к. не обладаю VS2012, но могу порекомендовать сходить на http://www.firebirdsql.org/en/net-provider/ или http://sourceforge.net/projects/firebird/files/firebird-net-provider/ и загрузить более свежую версию. Она, скорее всего, должна работать с новой студией.

      Удалить

Уважаемый комментатор, пишите грамотно.
С благодарностью, автор блога.