2017-11-01 1 views
1

Ich versuche scriptcs 0.17.1 zu verwenden, um ein einfaches Skript in C# zu erstellen. Hier ist mein Skript:Warum wird System.Data nicht automatisch in Skripten geladen?

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!"); 
    } 
} 

Wenn ich über scriptcs test.csx laufen das gibt mir den Fehler:

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

Nach the documentation:

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

Ich habe versucht, die folgende Zeile an der Spitze Mein Skript hat aber den gleichen Fehler:

#r "System.Data.dll" 

Ich habe versucht, meinen Klassennamen vollständig als System.Data.SqlConnection zu qualifizieren, bekam aber den gleichen Fehler.

ich vergewissert haben, dass System.Data.dll im GAC vorhanden auf C:\Windows\Microsoft.NET\assembly\GAC_64\System.Data\v4.0_4.0.0.0__b77a5c561934e089 und C:\Windows\Microsoft.NET\assembly\GAC_32\System.Data\v4.0_4.0.0.0__b77a5c561934e089

Normale -Konsole-Anwendungen (nicht-scriptcs) haben kein Problem die SqlConnection-Klasse.

Antwort

3

Sie haben nicht den richtigen Namespace. Die SqlConnection Klasse ist eigentlich in System.Data.SqlClient

+2

: facepalm: Ich glaube, ich bin viel zu abhängig von Intellisense geworden. – mason

+0

Versuchen Sie, Ihren gesamten Code in notepad.exe zu schreiben, das wird diese Abhängigkeit aussortieren: P – DavidG

1

Bitte nehmen Sie sich einen Blick auf SqlConnection, die im Namensraum System.Data.SqlClient definiert ist.

Als zusätzlichen Hinweis könnten Sie Ihren Code in ein einfaches Befehlszeilenprojekt geschrieben haben und sehen, was passiert.

Verwandte Themen