Работа с этим провайдером 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.0.zip и, если необходимо,
NETProvider-2.7.0-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.5.zip, распаковывем в папку "c:\Program Files\FirebirdClient\FirebirdDDEX".
Теперь нужно зарегистрировать провайдер и DDEX в machine.config, для каждой версии фреймворка отдельно.
Ищем по адресу c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\, открываем machine.config и редактируем:
<configuration>
<configsections>
...
</configsections></configuration>
<section name="firebirdsql.data.firebirdclient" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
...
<configsections>
...
<system.data>
<dbproviderfactories>
...
<add description=".Net Framework Data Provider for Firebird" invariant="FirebirdSql.Data.FirebirdClient" name="FirebirdClient Data Provider" type="FirebirdSql.Data.FirebirdClient.FirebirdClientFactory, FirebirdSql.Data.FirebirdClient, Version=2.7.0.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c">
...
</dbproviderfactories>
</system.data>
</configsections>
Ищем по адресу c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Config\, открываем machine.config и редактируем:
<configuration>
<configsections>
...
</configsections></configuration>
<section name="firebirdsql.data.firebirdclient" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
...
<configsections>
...
<system.data>
<dbproviderfactories>
...
<add description=".Net Framework Data Provider for Firebird" invariant="FirebirdSql.Data.FirebirdClient" name="FirebirdClient Data Provider" type="FirebirdSql.Data.FirebirdClient.FirebirdClientFactory, FirebirdSql.Data.FirebirdClient, Version=2.7.0.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c">
...
</dbproviderfactories>
</system.data>
</configsections>
В папке c:\Program Files\FirebirdClient\FirebirdDDEX\reg_files\VS2010\ открываем на редактирование FirebirdDDEXProvider32.reg
находим в нем строку с "CodeBase", заменяем ее на:
"CodeBase"="C:\\Program Files\\FirebirdClient\\FirebirdDDEX\\FirebirdSql.VisualStudio.DataTools.dll"
сохраняем, запускаем.
Далее можно перезагрузить компьютер и радуемся!
при сохранении изменений в файле mashine.config выдает отказано в доступе
ОтветитьУдалить