从框架 4.6.1 迁移到 6 (LTS)

问题描述 投票:0回答:2

我们开始将 40 个项目从框架 4.6.1 迁移到 6,一切似乎都很好,但我有一个问题。

我们在一个简单的项目中使用了升级助手工具;它工作得很好,但是删除了

system.data
参考,所以我们有很多与
DataSet/DataTable/DataRows/...
相关的内联“错误”,但也有与
SqlClient
相关的所有内容。

我们想将“旧”

System.Data.SqlClient
更新为新
Microsoft.Data.SqlClient
(这似乎是更好的长期选择)

两种解决方案:

  • 重新添加 system.data 就这样,一切运行良好。
  • 添加 nuget 包 Microsoft.Data.SqlClient(使用 nupkg 文件手动安装,因为它没有出现在 nuget 数据包管理器中:|)

我想最好的是第二个选项,所以我们添加 Imports Microsoft.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

谢谢

.net .net-6.0 sqlclient
2个回答
0
投票

从 .Net 4.6.1 到 .Net 6 的过渡是一个重大飞跃,正如您所提到的,使用 Nuget 是您使用新库的方式,因为默认情况下您的应用程序中不再有完整的 .Net 框架库.

如果您想在整个项目中使用 Microsoft.Data.SqlClient,您可以通过 Nuget 添加该引用,并通过全局引用(如果需要)或在您的个人类文件中添加您的使用引用。

https://www.nuget.org/packages/Microsoft.Data.SqlClient

我会确保您也使用最新版本的 Visual Studio。


0
投票

您唯一需要从 System.Data 更改为 Microsoft.Data 的地方是在 OperationAbortedException 上。在其他情况下,System.Data 仍然是一个有效的引用。您可以查看 SqlClient 团队的Cheet-Sheet

© www.soinside.com 2019 - 2024. All rights reserved.