2017-11-01 4 views
1

scriptcs 0.17.1を使ってC#で簡単なスクリプトを作成しようとしています。ここに私のスクリプトは次のとおりです。System.Dataが自動的にscriptcsに読み込まれないのはなぜですか?

using System.Data; 

using(var connection = new SqlConnection("constring")) 
{ 
    using(var command = new SqlCommand("select GETDATE()", connection)) 
    { 
     connection.Open(); 
     command.ExecuteNonQuery(); 
     Console.WriteLine("Hello, world!"); 
    } 
} 

私はscriptcs test.csx経由で実行すると、これは私にエラーを与える:

CS0246: The type or namespace name 'SqlConnection' could not be found (are you missing a using directive or an assembly reference?)

the documentationによると:

System, System.Core, System.Data, System.Data.DataSetExtensions, System.Xml, System.Xml.Linq assemblies are referenced by default.

私はの先頭に次の行を追加してみました私のスクリプトは同じエラーが発生しました:

#r "System.Data.dll" 

私はクラス名をSystem.Data.SqlConnectionとして完全に修飾しようとしましたが、同じエラーが発生しました。私はのSystem.Data.dllがC:\Windows\Microsoft.NET\assembly\GAC_64\System.Data\v4.0_4.0.0.0__b77a5c561934e089C:\Windows\Microsoft.NET\assembly\GAC_32\System.Data\v4.0_4.0.0.0__b77a5c561934e089

ノーマル.NETコンソールアプリケーション(非scriptcs)でGACに存在することを確認しました

は、SQLConnectionクラスを使用して何の問題もありません。

答えて

3

正しい名前空間がありません。 SqlConnectionクラスは実際にはSystem.Data.SqlClient

+2

:facepalm:私はIntellisenseにあまりにも依存してきたと思います。 – mason

+0

あなたのコードをすべてnotepad.exeに書き込んでみてください。それはその依存関係を整理します:P – DavidG

1

名前空間System.Data.SqlClientで定義されているSqlConnectionをご覧ください。

追加のヒントとして、単純なコマンドラインプロジェクトにコードを掲載し、何が起こるかを確認することができます。

関連する問題