UWP项目调用System.Data.SqlClient时找不到System.Data 4.0.0.0程序集求助
解决UWP中调用System.Data.SqlClient时的System.Data程序集找不到问题
我之前帮朋友处理过类似的UWP兼容问题,结合你的项目版本情况,给你几个可行的解决方案:
方案一:改用Microsoft.Data.SqlClient(优先推荐)
微软早就把SQL Server客户端的维护重心转移到Microsoft.Data.SqlClient上了,这个包专门适配UWP、.NET Core等现代平台,兼容性好太多:
- 打开NuGet包管理器,搜索并安装
Microsoft.Data.SqlClient包 - 把代码里的
using System.Data.SqlClient;替换成using Microsoft.Data.SqlClient; - 所有相关类(比如
SqlConnection、SqlCommand)都切换到这个命名空间下,不需要额外配置就能正常运行
方案二:手动添加app.config并配置绑定重定向(仅当必须用旧版时)
如果你因为业务限制必须使用System.Data.SqlClient,可以手动创建app.config来解决程序集绑定问题:
- 右键你的UWP项目 → 添加 → 新建项 → 搜索“应用程序配置文件”,添加一个
app.config文件 - 把以下内容复制到app.config中:
<configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Data" publicKeyToken="b77a5c561934e089" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> </configuration>
不过要注意,这个方法在你的最低版本Win10 10586(1511版)上可能还是会有兼容性隐患,所以优先推荐方案一。
额外提示:版本兼容性优化
你的项目最低版本是Win10 10586,这个版本的UWP对传统.NET程序集的支持非常有限。如果业务允许,把最低版本升级到16299(Win10 1709)或更高,能减少很多这类奇怪的兼容性问题。
内容的提问来源于stack exchange,提问作者Amjx
相关产品推荐
相关产品推荐

