c# – 如何在.NET Core RC2控制台应用程序(Linux,Debian 8)中使用System.Data?

我在Debian 8 amd64系统上安装了.NET Core RC2,并想测试是否可以查询Microsoft sql Server实例.

所以我想在我的项目中添加对System.Data.sqlClient程序集的依赖.

目前,通过运行dotnet新CLI工具创建的项目文件如下所示:

{
  "version": "1.0.0-*","buildOptions": {
    "emitEntryPoint": true
  },"dependencies": {
    "Microsoft.NETCore.App": {
      "type": "platform","version": "1.0.0-rc2-3002702"
    }
  },"frameworks": {
    "netcoreapp1.0": {
      "imports": "dnxcore50"
    }
  }
}

使用this answer进行类似的查询,我能够添加对System.Data.Common的引用来更改

"frameworks": {
  "netcoreapp1.0": {
    "imports": "dnxcore50"
  }
}

片段到

"frameworks": {
  "netcoreapp1.0": {
    "imports": "dnxcore50","dependencies": {
      "System.Data.Common": "*"
    }
  }
}

使得dotnet恢复使用NuGet下载一堆东西.

然后我尝试将该片段更改为读取

"frameworks": {
  "netcoreapp1.0": {
    "imports": "dnxcore50","dependencies": {
      "System.Data.sqlClient": "*"
    }
  }
}

但NuGet说的是

Unable to resolve ‘System.Data.sqlClient’ for ‘.NETCoreApp,Version=v1.0’.

如果我将版本字符串更改为“4.1.0-rc3- *”,则错误消息会更具体:

Unable to resolve ‘System.Data.sqlClient (>= 4.1.0-rc3)’ for ‘.NETCoreApp,Version=v1.0’.

令我困惑的是,the NuGet package gallery dedicated to .NET Core明确地将System.Data.sqlClient列为可用.

那么我该怎样做才能将System.Data.sqlClient程序集的引用添加到我的项目中并让NuGet下载呢?

另外,我目前正在普通控制台中使用dotnet CLI工具.有没有办法管理.NET Core项目的项目依赖项而无需安装IDE?

解决方法

评论中已经注释的poke是正确的.指定System.Data.sqlClient的版本使您的恢复快乐;)

这是为什么? System.Data.sqlClient存在于http://nuget.org库中.不指定版本(“”)不允许在项目边界之外(如nuget Feed包)并且仅指定星号“*”(您不应该这样做,它允许重置更改)恢复最高可用版本.由于没有稳定,明星将找不到任何东西(背后的破折号有一些魔力).该库的RC2版本是上面提到的4.1.0-rc2-24027,当您询问4.1.0-rc2- *时,它将占用RC2构建中的最高版本(但只有一个).相比之下,System.Data.Common在nuget.org上有一个针对通用Windows平台的公开发行版,因此找到了它.

RC3是下一个版本,仅适用于.NET Core和ASP.NET Core团队的开发人员提要,而不是公共nuget提要.你不应该玩它们.

相关文章

本文将从上往下,循序渐进的介绍一系列相关.NET的概念,先从...
基于 .NET 的一个全新的、好用的 PHP SDK + Runtime: Pe...
.NET 异步工作原理介绍。
引子 .NET 6 开始初步引入 PGO。PGO 即 Profile Guided Opti...
前言 2021/4/8 .NET 6 Preview 3 发布,这个版本的改进大多来...
前言 开头防杠:.NET 的基础库、语言、运行时团队从来都是相...