如何添加自定义 DB 提供程序以在 Visual Studio 中访问?
Posted
技术标签:
【中文标题】如何添加自定义 DB 提供程序以在 Visual Studio 中访问?【英文标题】:How to add custom DB provider to be accessible in Visual Studio? 【发布时间】:2011-06-21 08:57:15 【问题描述】:我想在 Visual Studio 中使用自定义 DB 提供程序。我需要它来使用实体框架。
比如我下载了NpgSQL, 在 GAC 中注册:
gacutil -i c:\temp\npgsql.dll
gacutil -i c:\temp\mono.security.dll
并添加到 machine.config 文件中:
<add name="Npgsql Data Provider"
invariant="Npgsql" support="FF"
description=".Net Framework Data Provider for Postgresql Server"
type="Npgsql.NpgsqlFactory, Npgsql, Version=2.0.6.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7" />
但是 Npgsql 没有出现在 Visual Studio 的数据源列表中:
如何将自定义数据库提供程序添加到此列表中?
UPD:如果我使用命令字符串 edmgen.exe 我得到错误:
错误 7001:未能找到或加载已注册的 .Net Framework 数据提供程序。
【问题讨论】:
【参考方案1】:您需要在配置文件(Web.config、Machine.config 等)中声明 DbFactoryProvider。这是我从一个使用 mysql 的项目中提取的示例:
我也更喜欢在应用程序级配置文件中声明这些,并让我的应用程序使用程序集的本地副本。这有助于提高可移植性,因为我们无法保证 GAC 中可以使用第 3 方提供商。
【讨论】:
我在 machine.config 文件中添加了 Npgsql 提供程序,但注意到发生了。 您必须选择正确的 machine.config 进行编辑。如果是 64 位系统,请编辑 c:\Windows\Microsoft.NET\Framework64\v4.0.*\Config\machine.config,否则使用目录“Framework”而不是“Framework64”来找到正确的配置文件.【参考方案2】:旧版(自 2013 年 1 月 7 日起):无法在 Visual Studio 中添加可访问的 Npgsql 提供程序,因为 NpgSql 目前不支持 DDEX。
2013 年 12 月 29 日更新:DDEX 支持似乎是added。
【讨论】:
我们正在为此提供支持。我们希望尽快添加它。 只是跟进:我们在 2.2 beta1 中添加了对此的支持。您可以在此处获取有关如何编译、配置和安装它的更多信息:github.com/npgsql/Npgsql/wiki/… 希望对您有所帮助【参考方案3】:发件人:http://fxjr.blogspot.com/2011/05/npgsql-design-time-support-preview.html
你必须做一个非常重要的步骤:在 Npgsql.Designer2 文件夹中,有一个名为 NpgsqlProvider.gen.reg 的文件。每次启动 VS.Net 调试项目时,都必须将此文件合并到注册表中
【讨论】:
【参考方案4】:如果你想在 Visual Studio 的数据源列表中列出 Npgsql,这个article 可能会有点帮助。
无论如何,由于 Visual Studio 是由 Microsoft 提供的,显然您需要处理注册表。
【讨论】:
以上是关于如何添加自定义 DB 提供程序以在 Visual Studio 中访问?的主要内容,如果未能解决你的问题,请参考以下文章
如何在自定义模板 Visual Studio 2019 中添加多个选项
为 Windows 实现自定义 unistd.h 以在 Visual Studio 上工作 - 问题
如何正确安装 libcurl 以在 Visual Studio 2017 中使用?
定义 EmbeddedDatabaseFactory 以在 Spring 上加载自定义 EmbeddedDatabaseConfigurer