2016-05-17 77 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」,

相關問題