我们开始了40个项目从framework 4.6.1到framework 6的迁移,一切看起来都很好,但是我有一个问题。
我们在一个简单的项目中使用了升级助手工具;它工作得很好,但是system.data
引用被删除了,所以我们有很多与DataSet/DataTable/DataRows/...
相关的内联"错误",但也有与SqlClient
相关的一切。
我们希望将"旧的" System.Data.SqlClient
更新为新的Microsoft.Data.SqlClient
(这似乎是更好的长期选择)
两种解决方案:
- re-add the system.data and that's it, everything runs well.
- 添加nuget软件包Microsoft. Data. SqlClient(使用nupkg文件手动安装,因为它未出现在nuget数据包管理器中:|)
我认为最好的选择是第二个选项,因此我们添加ImportsMicrosoft.Data(或在项目中添加命名空间)作为我们使用"SqlClient.SqlConnection"、"SqlClient.SqlCommand"、"SqlClient.SqlDataAdapter"引用的对象
但是DataSet/DataTable/DataRows/上的错误仍然存在,所以我想总是有必要添加System.Data命名空间吗?
但是我们如何避免这样的错误呢(当然很容易,不用重命名)
Error BC37229 'SqlCommand' is ambiguous between declarations in namespaces 'Microsoft.Data.SqlClient, System.Data.SqlClient
谢啦,谢啦
1条答案
按热度按时间z9smfwbn1#
从.Net 4.6.1到.Net 6的过渡是一个重大的飞跃,正如您提到的,使用Nuget是您今后使用新库的方式,因为默认情况下,您的应用中不再有完整的.Net Framework库。
如果要在整个项目中使用Microsoft.data.sqlClient,则应通过Nuget添加该引用,并通过全局引用(如果需要)或在单个类文件上添加using引用。
https://www.nuget.org/packages/Microsoft.Data.SqlClient
我可以确保您使用的也是最新版本的Visual Studio。