web-dev-qa-db-ja.com

.NET Core RC2コンソールアプリ(Linux、Debian 8)でSystem.Dataを使用するにはどうすればよいですか?

Debian 8AMD64システムに.NETCore RC2をインストールしましたが、Microsoft SQLServerのインスタンスにクエリを実行できるかどうかをテストしたいと思います。

そこで、プロジェクトにSystem.Data.SqlClientアセンブリへの依存関係を追加したいと思います。

現在、dotnet newCLIツールを実行して作成したプロジェクトファイルは次のようになります。

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

同様のクエリに この回答 を使用して、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はそれが

'.NETCoreApp、Version = v1.0'の 'System.Data.SqlClient'を解決できません。

バージョン文字列を「4.1.0-rc3- *」に変更すると、エラーメッセージがより具体的になります。

'.NETCoreApp、Version = v1.0'の 'System.Data.SqlClient(> = 4.1.0-rc3)'を解決できません。

私が困惑しているのは、 。NET Core専用のNuGetパッケージギャラリーSystem.Data.SqlClientを使用可能として明示的にリストしていることです。

では、System.Data.SqlClientアセンブリへの参照をプロジェクトに追加し、NuGetにダウンロードさせるにはどうすればよいですか?

ちなみに、私は現在、dotnetCLIツールのみを使用してプレーンコンソールで遊んでいます。 IDEのインストールに頼らずに.NETCoreプロジェクトのプロジェクト依存関係を管理する方法はありますか?

7
kostix

コメントですでに注釈が付けられているポークのように正しいです。 System.Data.SqlClientにバージョンを指定すると、復元が正常になります;)

何故ですか? System.Data.SqlClienthttp://nuget.org ギャラリーに存在します。プロジェクトの境界外(nugetフィードパッケージなど)でバージョン( "")を指定しないこと、およびスター"*"のみを指定することは許可されていません(絶対に行わないでください。重大な変更が可能です)利用可能なバージョン。安定したものがないので、星は何も見つけられません(ダッシュが後ろにある魔法があります)。そのライブラリのRC2バージョンは前述の4.1.0-rc2-24027であり、4.1.0-rc2- *で要求すると、RC2ビルドの中で最も高いものが使用されます(ただし、1つしかありません)。比較すると、System.Data.CommonはユニバーサルWindowsプラットフォーム用のnuget.orgで公開リリースされており、そのために見つかりました。

RC3は次のリリースであり、.NETCoreおよびASP.NETCoreチームからの開発者フィードでのみ利用可能であり、パブリックnugetフィードでは利用できません。あなたは彼らと遊ぶべきではありません。

10
Thomas

project.jsonファイルを使用している場合、利用可能な最新のツールでVisual Studioを更新した場合は、インテリセンスがガイドします。

依存関係要素に以下を追加しましたが、完全に機能します。

"System.Data.SqlClient": "4.1.0-rc2-24027"、

1
Kiran

MINT 19 Taraでは、System.Data.SqlClientを使用していませんが、新しいバージョンのMicrosoft.Data.SqlClientを使用しています。 nugetを確認してください

.NET-cliコマンドを入力した後、パッケージがダウンロードされ、参照がプロジェクトのcsprojファイルに追加されました。

コードでは、新しい名前空間を使用します。

Microsoft.Data.SqlClientを使用;

「通常の」コードは正常に機能します。

 public static void CreateCommand(string queryString, string connectionString)
    {
        using (SqlConnection connection = new SqlConnection(
                   connectionString))
        {
            SqlCommand command = new SqlCommand(queryString, connection);
            command.Connection.Open();
            SqlDataReader reader = command.ExecuteReader() ;
            while( reader.Read() ) {
                for (int i = 0; i < reader.FieldCount; i++)
                {
                   Console.WriteLine( "Column name={0}, Value={1}", 
                        reader.GetName(i),
                        reader.GetValue(i) ); 
                }
            }
        }
    }
0
Rob Lassche