gpt4 book ai didi

asp.net-mvc - ASP.NET vNext 对 ADO.NET 的引用已损坏

转载 作者:行者123 更新时间:2023-12-02 02:26:29 24 4
gpt4 key购买 nike

我有一个简单的 ASP.NET vNext 类库项目,当引用 System.Data 中的类型时,该项目无法编译;我在这里做错了什么,还是 vnext 有问题?

我像这样设置了我的project.json:

{
"dependencies": {
"System.Data.Common": "1.0.0-alpha3"
},

"frameworks": {
"net451": {
"dependencies": {
}
},
"k10": {
"dependencies": {
}
}
}
}

在输入“System.Data.Common”引用时,nuget intellisense 工作正常;保存文件后,包恢复按预期发生。

然后我向项目添加了一个引用System.Data.IDbConnection的接口(interface),像这样:

using System.Data;

namespace MyProj.Common.Data
{
public interface IDbConnectionFactory
{
IDbConnection CreateConnection();
}
}

这在构建时会爆炸:

Error 1 The type or namespace name 'IDbConnection' could not be found (are you missing a using directive or an assembly reference?) C:\Users\Administrator\Proj\MyProj\MyProj.Common\Data\IDbConnectionFactory.cs 7 9 MyProj.Common

我的 KVM 列表:

C:\Users\Administrator\Proj\MyProj [next +3 ~2 -0 !]> kvm listActive Version            Runtime Architecture Location                             Alias------ -------            ------- ------------ --------                             -----  *    1.0.0-alpha3       svr50   x64          C:\Users\Administrator\.kre\packages default       1.0.0-alpha3       svr50   x86          C:\Users\Administrator\.kre\packages       1.0.0-alpha3       svrc50  x64          C:\Users\Administrator\.kre\packages       1.0.0-alpha3       svrc50  x86          C:\Users\Administrator\.kre\packages       1.0.0-alpha4-10364 CLR     amd64        C:\Users\Administrator\.kre\packages       1.0.0-alpha4-10364 CLR     x86          C:\Users\Administrator\.kre\packages       1.0.0-alpha4-10364 CoreCLR amd64        C:\Users\Administrator\.kre\packages       1.0.0-alpha4-10364 CoreCLR x86          C:\Users\Administrator\.kre\packages       1.0.0-alpha4-10365 CLR     amd64        C:\Users\Administrator\.kre\packages       1.0.0-alpha4-10365 CLR     x86          C:\Users\Administrator\.kre\packagesC:\Users\Administrator\Proj\MyProj [next +3 ~2 -0 !]>

Can ASP.NET vNext use non-vNext references?问题看起来非常相似,但这里的错误消息有些不同,并且 nuget intellisense 表明 ADO.NET 包是为 K10 构建的。

最佳答案

IDbConnection 在 .NET 桌面版本的 System.Data.dll 中定义。它不包含在 System.Data.Common 中,后者仅包含可在不同运行时版本中使用的 ADO.NET 类型的子集。如果您同意您的应用程序只能在桌面 .NET 上运行,您应该能够引用完整的 System.Data.dll 并使用其中的任何类型。如果您希望能够针对基于 CoreCLR 的运行时,您应该坚持使用 System.Data.Common 中定义的类型,例如在这种情况下,您可以使用 DbConnection。

关于asp.net-mvc - ASP.NET vNext 对 ADO.NET 的引用已损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25779011/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com