2017-03-14 3 views
1

Ich bin der Lage, eine C# -Code Probe zu erhalten in einem Powershell v2.0 Skript auszuführen, wie folgt:C# Datentabelle innerhalb Powershell-Skript

$Source = @" 
using System; 

namespace CSharpInPowershell 
{ 
    public static class Sample 
    { 
     public static void TryDataTable() 
     { 
      Console.WriteLine("Hello World"); 
      Console.ReadLine(); 
     } 
    } 
} 
"@ 

Add-Type -TypeDefinition $Source -Language CSharp 

[CSharpInPowershell.Sample]::TryDataTable() 

Allerdings bin ich erhalte eine Fehlermeldung beim Versuch, eine Datentabelle hinzufügen :

Add-Type -AssemblyName System.Data 

$Source = @" 
using System; 
using System.Data; 

namespace CSharpInPowershell 
{ 
    public static class Sample 
    { 
     public static void TryDataTable() 
     { 
      Console.WriteLine("Hello World"); 
      DataTable table = new DataTable(); 
      Console.ReadLine(); 
     } 
    } 
} 
"@ 

Add-Type -TypeDefinition $Source -Language CSharp 

[CSharpInPowershell.Sample]::TryDataTable() 

der Fehler ich erhalte, ist die folgende:

Add-Type: c: \ Benutzer (User-ID) \ AppData \ Local \ Temp \ qbefurwr.0.cs (2): die Typ oder Namespacename 'Daten' existiert nicht im Namespace 'System' (fehlt eine Assemblyreferenz?) c: \ Benutzer (Benutzer-ID) \ AppData \ Local \ Temp \ qbefurwr.0.cs (1) : Verwenden von System; c: \ Benutzer (Benutzer-ID) \ AppData \ Local \ Temp \ qbefurwr.0.cs (2): >>> mit System.Data; c: \ Benutzer (User-ID) \ AppData \ Local \ Temp \ qbefurwr.0.cs (3): Namespace CSharpInPowershell Bei Zeile: 1 Zeichen: 9 + Add-Type < < < < -TypeDefinition $ Quelle -Sprache CSharp + CategoryInfo: invalidData: (c: \ Benutzer (User-ID) ... Bly Referenz?): Compiler) [Add-Type], Exception + FullyQualifiedErrorId: SOURCE_CODE_ERROR, Microsoft.PowerShell.Commands.AddTypeCommand

Add-Type : Kann keinen Typ hinzufügen. Es gab Kompilierungsfehler. In Zeile: 1 char: 9 + Add-Type < < < < -TypeDefinition $ Quelle -Sprache CSharp + CategoryInfo: invalidData: (:) [Add-Type], InvalidOperationException + FullyQualifiedErrorId: COMPILER_ERRORS, Microsoft.PowerShell. Commands.AddTypeCommand

Wie Sie sehen können, habe ich versucht, eine Referenz mit Add-Type -AssemblyName System.Data hinzuzufügen. Mein Ziel ist es, C# -Code-Beispiele in einem Powershell-Skript verwenden zu können. Ich weiß, dass ich das alles in Powershell umschreiben könnte, aber ich versuche, diese Art von Scripting zum Laufen zu bringen.

Wie kann ich die Baugruppenreferenz für System.Data im C# -Code erkannt bekommen?

UPDATE: Dank @SomeShinyObject, ich habe folgendes Arbeits Skript:

$Source = @" 
using System; 
using System.Data; 

namespace CSharpInPowershell 
{ 
    public static class Sample 
    { 
     public static void TryDataTable() 
     { 
      Console.WriteLine("Hello World"); 
      DataTable table = new DataTable(); 
      Console.ReadLine(); 
     } 
    } 
} 
"@ 

Add-Type -TypeDefinition $Source -Language CSharp ` 
     -ReferencedAssemblies System.Data, System.XML 

[CSharpInPowershell.Sample]::TryDataTable() 

Antwort

2

Sie benötigen die ReferencedAssemblies Parameter zu verwenden.

#When I tested, System.XML also needed to be added for it to work so I included it 
Add-Type -TypeDefinition $Source -Language CSharpVersion3 -ReferencedAssemblies System.Data, System.XML 
+0

Danke, das hat meinen Fehler behoben. – MikeD

Verwandte Themen