Я застрял на несколько дней с этой проблемой.Я вижу, что у многих людей есть эта проблема, и я пробовал много вещей, но все еще безуспешно.Пожалуйста, кто-нибудь может мне помочь.
Я использую 64-битную Windows 7, MS Visual Studio 2010, Firebird DDEX 2.0.5 и NetProvider 2.7.0.0.Я внимательно следил за этим вопросом stackoverflow в сочетании с файлом ReadMe, поставляемым вместе с DDEX, и другими статьями в Интернете, пытаясь установить все.Я сделал следующее:
Установите NetProvider 2.7.0.0 на C: \ Program Files (x86) \ FirebirdClient .
Извлечение файлов DDEX 2.0.5 в C: \ Program Files (x86) \ FirebirdClientt .
Отредактировал файл реестра FirebirdDDEXProvider64 в C: \ Program Files(x86) \ FirebirdClient \ reg_files \ VS2010, так что
"CodeBase" = "% Path% \ FirebirdSql.VisualStudio.DataTools.dll"
теперь читает
"CodeBase"="C:\\Program Files (x86)\\FirebirdClient\\FirebirdSql.VisualStudio.DataTools.dll"
и затем я установил его.
Я использовал gacutil.exe для установки FirebirdSql.VisualStudio.DataTools.dll и FirebirdSql.Data.FirebirdClient.dll, выполнив следующие действия:
cd "C: \ Program Files (x86) \FirebirdClient "" C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ bin \ NETFX 4.0 Tools \ gacutil.exe "/ i FirebirdSql.VisualStudio.DataTools.dll
" C: \Программные файлы (x86) \ Microsoft SDKs \ Windows \ v7.0A \ bin \ NETFX 4.0 Tools \ gacutil.exe "/ i FirebirdSql.Data.FirebirdClient.dll
согласно инструкциямприведенный в вопросе с гиперссылкой выше ([здесь]) 2 , за исключением того, что я использовал gacutil.exe из Program Files (x86) вместо Program Files для установки FirebirdSql.VisualStudio.DataTools.dll как gacutil.exeне существует в каталоге обычных программных файлов.Я использовал функцию списка gacutil.exe, чтобы проверить правильность установки обоих файлов, а также записать функцию PublicKeyFunction и т. Д.
После долгих чтений я решил настроить все четыре файла 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: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ CONFIG \ machine.config
C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config \ machine.config
Я скопировал код из DDEXпрочитайте и вставьте его в правильные позиции в файле и запишите в него различные параметры, соответственно.Я сделал это с учетом того, что номер версии во время выполнения отличается в зависимости от того, настраиваю ли я файлы machine.config v2 или v4, а также помещаю правильные параметры, записанные на шаге gacutil.exe, описанном выше ... т.е. версия = 2.7.0.0, культура= нейтральный, publickeytoken = 3750abcc3150b00c.См. Ниже.
C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG \ machine.config
<configuration>
<configSections>
<section name="firebirdsql.data.firebirdclient" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="appSettings" type="System.Configuration.AppSettingsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" restartOnExternalChanges="false" requirePermission="false" />
и далее в файле
<system.data>
<DbProviderFactories>
<add name="FirebirdClient Data Provider" invariant="FirebirdSql.Data.FirebirdClient" description=".Net Framework Data Provider for Firebird" type="FirebirdSql.Data.FirebirdClient.FirebirdClientFactory, FirebirdSql.Data.FirebirdClient, Version=2.7.0.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c" />
<add name="Odbc Data Provider" invariant="System.Data.Odbc" description=".Net Framework Data Provider for Odbc" type="System.Data.Odbc.OdbcFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add name="OleDb Data Provider" invariant="System.Data.OleDb" description=".Net Framework Data Provider for OleDb" type="System.Data.OleDb.OleDbFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add name="OracleClient Data Provider" invariant="System.Data.OracleClient" description=".Net Framework Data Provider for Oracle" type="System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add name="SqlClient Data Provider" invariant="System.Data.SqlClient" description=".Net Framework Data Provider for SqlServer" type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</DbProviderFactories>
</system.data>
(я вставил дополнительный код на случай, если это поможет?)
аналогично для файлов v4 machine.config, за исключением того, что здесь мне пришлось настроить раздел кода DBProviderFactories следующим образом:
<configuration>
<configSections>
<section name="firebirdsql.data.firebirdclient" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="appSettings" type="System.Configuration.AppSettingsSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" restartOnExternalChanges="false" requirePermission="false" />
и это был оригинальный код machine.config до:
<system.data>
<DbProviderFactories />
</system.data>
, и это то, что я настроил так:
<system.data>
<DbProviderFactories>
<add name="FirebirdClient Data Provider" invariant="FirebirdSql.Data.FirebirdClient" description=".Net Framework Data Provider for Firebird" type="FirebirdSql.Data.FirebirdClient.FirebirdClientFactory, FirebirdSql.Data.FirebirdClient, Version=2.7.0.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c" />
</DbProviderFactories>
</system.data>
То же самое было вернодля 64-битного файла V4.
Когда я открываю MS Visual Studio 2010 и пытаюсь добавить соединение, я могу выбрать источник данных Firebird, и он перечисляет провайдера данных .Net Framework для Firebird, и при продолжении я получаю следующее окно, где я могу ввести регистрацию базы данныхпараметры.Однако, когда я нажимаю Test Connection (даже если данные не введены), появляется сообщение « Test Connection Successful », и когда я нажимаю OK, я получаю ошибку « Невозможно найти запрошенные данные .NET FrameworkProvider.Возможно, он не установлен. '
Я не уверен, что еще делать.Все, что я прочитал, указывает на неправильные файлы machine.config, но я не могу найти проблему.
Любая помощь будет принята с благодарностью.