2016-05-17 78 views
5

我已经在Debian 8 amd64系统上安装了.NET Core RC2,并想测试是否可以查询Microsoft SQL Server的实例。如何在.NET Core RC2控制台应用程序(Linux,Debian 8)中使用System.Data?

所以我想添加到我的项目依赖于System.Data.SqlClient大会。

目前通过运行dotnet new 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 restore使用NuGet下载一堆东西。

然后我试图改变该片段阅读

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

但的NuGet说,这是

无法解析 'System.Data.SqlClient的' 为” .NETCoreApp,版本= V1.0 ”。

如果我改变版本字符串为 “4.1.0-rc3- *” 的错误消息,只是变得更加具体:

无法解析“System.Data.SqlClient的(> = 4.1 .0-rc3)'为'.NETCoreApp,Version = v1.0'。

我很困惑的是,the NuGet package gallery dedicated to .NET Core明确列出System.Data.SqlClient可用。

那么我能做些什么来为System.Data.SqlClient程序集添加一个对我的项目的参考,并让NuGet下载它?

在附注中,我目前只在一个简单的控制台中玩,只有dotnet CLI工具。有没有办法管理.NET Core项目的项目依赖关系,而无需安装IDE?

+0

不完全知道发生了什么事情在那里,但尽量版' “4.1.0 - *”'。这将(现在)出于某种原因得到'4.1.0-rc2-24027'这是有效的。 – poke

+0

@poke,工作,谢谢! – kostix

+0

对于那些发现这篇文章的人:我没有使'System.Data.SqlClient'登录到Microsoft SQL Server 2005的一个实例中,并提交了[问题](https://github.com/dotnet/corefx/issues/8645)关于这个问题。 – kostix

回答

6

像poke已经在注释中注释是正确的。指定一个版本到System.Data.SqlClient使您恢复快乐;)

为什么?在http://nuget.org图库中存在System.Data.SqlClient。如果不指定版本(“”),则不允许在项目边界之外(如nuget feed package)指定版本(“”),并仅指定明星"*"(您绝不应该这样做,它允许中断更改)恢复最高可用版本。由于没有稳定,星星不会找到任何东西(背后有一些魔术)。该库的RC2版本是4.1.0-rc2-24027,当你问4.1.0-rc2- *时,它将采用最高的RC2版本(但只有一个版本)。相比之下,System.Data.Common在通用Windows平台的nuget.org上有公开发布,因此可以找到它。

RC3是下一个版本,仅适用于来自.NET Core和ASP.NET Core团队的开发者订阅源,而不是公共Nuget订阅源。你不应该和他们一起玩。

+0

@感谢编辑。 – Thomas

+0

谢谢(和@poke):很高兴知道所提出的解决方案并非神奇,而是预期的行为。 – kostix

+2

快速添加此答案:默认Feed不是myget,而是“常规”nuget Feed。星形('“*”')版本依赖将总是得到最新的* stable *版本的包。因此对于'System.Data.Common',你会得到['4.0.0'](https://www.nuget.org/packages/System.Data.Common/);虽然没有稳定的'System.Data.SqlClient',所以失败了。在执行'dotnet restore'之后,您可以通过查看'project.lock.json'来确认实际使用哪个版本。 – poke

1

如果你在project.json文件,智能感知现在引导你,如果你已经更新了最新的模具缴费在Visual Studio ..

我加在dependencies元素下面和它完美..

“System.Data.SqlClient的”: “4.1.0-rc2-24027”,

相关问题