Visual Studio 2022中TableAdapter强制使用Microsoft.Data.SqlClient问题求助
问题场景
使用Visual Studio 2022 v17.7.4 + .NET Framework 4.8,通过Web.config中配置的providerName="System.Data.SqlClient"的MyConnection连接字符串创建新TableAdapter,期望兼容旧系统的其他TableAdapter,但选择该连接后,TableAdapter仍强制使用Microsoft.Data.SqlClient,需安装大量相关包;卸载该包后创建新TableAdapter时又会自动重新安装,且未找到覆盖连接字符串的本地配置文件。
Web.config配置示例:
<configuration> <configSections> <connectionStrings> <add name="MyConnection" connectionString="Data Source=xxx.xxx.xxx.xxx; Initial Catalog=xxx;User ID=xxx;" providerName="System.Data.SqlClient" /> </connectionStrings> </configSections> <configuration>
解决方法
方法1:修改项目配置强制指定数据提供程序
打开项目的.csproj文件,添加以下配置节点,强制DataSet设计器使用System.Data.SqlClient:
<PropertyGroup> <UseSqlClientOnDotNetFramework>true</UseSqlClientOnDotNetFramework> </PropertyGroup>
保存文件后重新加载项目,后续创建TableAdapter时将自动使用System.Data.SqlClient,不会再自动安装Microsoft.Data.SqlClient包。
方法2:在TableAdapter向导中手动指定提供程序
在创建TableAdapter的流程中,选择完目标连接字符串后,进入“选择命令类型”步骤前,点击高级选项按钮,在弹出的配置窗口中手动选择System.Data.SqlClient作为数据提供程序,覆盖默认的Microsoft.Data.SqlClient。
方法3:清理项目及VS缓存
- 关闭Visual Studio,删除项目目录下的
obj和bin文件夹; - 删除用户目录下的Visual Studio组件缓存(路径示例:
C:\Users\[你的用户名]\AppData\Local\Microsoft\VisualStudio\17.0_xxxx\ComponentModelCache,其中17.0_xxxx对应你的VS版本标识); - 重新打开项目后再尝试创建TableAdapter。
内容的提问来源于stack exchange,提问作者SyndRain
相关产品推荐
相关产品推荐

