Kompilieren / Ausführen einer C # -Quelldatei in der Eingabeaufforderung

Antworten:

139

CSC.exe ist der in .NET Framework enthaltene CSharp-Compiler und kann zum Kompilieren über die Eingabeaufforderung verwendet werden. Die Ausgabe kann eine ausführbare Datei ".exe" sein, wenn Sie "/ target: exe" oder eine DLL verwenden. Wenn Sie / target: library verwenden, befindet sich CSC.exe im .NET Framework-Verzeichnis.

zB für .NET 3.5 , c:\windows\Microsoft.NET\Framework\v3.5\.

Öffnen Sie zum Ausführen zunächst eine Eingabeaufforderung, klicken Sie auf "Start" und geben Sie ein cmd.exe.
Möglicherweise müssen Sie dann in das Verzeichnis cd, das Ihre Quelldateien enthält.

Führen Sie den C # -Compiler folgendermaßen aus:

  c:\windows\Microsoft.NET\Framework\v3.5\bin\csc.exe 
            /t:exe /out:MyApplication.exe MyApplication.cs  ...

(alle in einer Zeile)

Wenn Sie mehr als ein Quellmodul kompilieren möchten, können Sie es in dieselbe Befehlszeile einfügen. Wenn Sie andere Baugruppen referenzieren möchten, verwenden Sie /r:AssemblyName.dll.

Stellen Sie sicher, dass in einer Ihrer Klassen eine statische Main () -Methode definiert ist, die als "Einstiegspunkt" fungiert.

Geben Sie zum Ausführen der resultierenden EXE-Datei ein, MyApplicationund verwenden Sie anschließend <ENTER>die Eingabeaufforderung.

In diesem Artikel zu MSDN werden die Optionen für den Befehlszeilen-Compiler ausführlicher beschrieben. Sie können Ressourcen einbetten, Symbole festlegen, Assemblys signieren - alles, was Sie in Visual Studio tun können.

Wenn Sie Visual Studio installiert haben, klicken Sie im "Startmenü" auf. Unter Visual Studio Tools können Sie eine "Visual Studio-Eingabeaufforderung" öffnen, mit der alle erforderlichen Umgebungs- und Pfadvariablen für die Befehlszeilenkompilierung eingerichtet werden.

Es ist zwar sehr praktisch, dies zu wissen, Sie sollten es jedoch mit dem Wissen über ein Build-Tool wie NAnt , MSBuild , FinalBuilder usw. kombinieren . Diese Tools bieten eine vollständige Build-Umgebung, nicht nur den Basis-Compiler.

Auf einem Mac

Auf einem Mac ist die Syntax ähnlich, nur der Cis-Compiler heißt nur csc:

$ csc /target:exe /out:MyApplication.exe MyApplication.cs ...

Dann, um es auszuführen:

$ mono MyApplication.exe
Asche
quelle
1
Wenn ich mich richtig erinnere, können Sie nur dann kompilieren und exe, wenn Sie eine statische Klasse mit einer Main-Methode haben.
CJK
Der Compiler warnt Sie heutzutage, wenn Sie dies nicht getan haben, aber guter Punkt, ich werde das der Antwort hinzufügen, danke.
Asche
5
Das ist fantastisch. Musste eine winzige C # -App kompilieren und habe kein Interesse daran, Visual Studio zu berühren. Vielen Dank!
ColinM
1
In Win10 fand ich meine dort:C:\Program Files (x86)\MSBuild\14.0\Bin\csc.exe
TrakJohnson
17

Eine andere Möglichkeit zum Kompilieren von C # -Programmen (ohne Visual Studio zu verwenden oder ohne es installiert zu haben) besteht darin, eine Benutzervariable in Umgebungsvariablen zu erstellen, nämlich "PATH".

Kopieren Sie den folgenden Pfad in diese Variable:

"C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319"

oder je nachdem, welches .NET Ihr PC hat.

Sie müssen also nicht jedes Mal, wenn Sie einen Code kompilieren, den gesamten Pfad angeben. Einfach benutzen

"C: \ Benutzer \ Benutzername \ Desktop> csc [Optionen] Dateiname.cs"

oder wo immer der Pfad Ihres Codes ist.

Jetzt können Sie loslegen.

Aditya Garg
quelle
15

Sie können ein C # -Programm kompilieren:

c:> csc Hello.cs

Sie können das Programm ausführen

c:> Hallo

Surendra
quelle
1
Was ist, wenn ich zusätzliche Bibliotheken verwende? Ich erhalte die Fehlermeldung, dass Assemblys nicht gefunden wurden ... Wie kann ich das beheben?
Nikas Žalias
Sie müssen zuerst sicherstellen, dass sich der Pfad zum Compiler in den Umgebungsvariablen befindet.
Dame Lyngdoh
@ NikasŽalias. ZB csc Hello.cs -langversion: neueste -referenz: System.Net.Http.dll
Alex Nolasco
7

Während es definitiv eine gute Sache ist, zu wissen, wie man über die Befehlszeile erstellt, ist es für die meisten Arbeiten möglicherweise einfacher, eine IDE zu verwenden. Die C # Express Edition ist kostenlos und sehr gut für das Geld ;-p

Alternativ können Dinge wie snippy verwendet werden, um Fragmente von C # -Code auszuführen.

Schließlich - beachten Sie, dass die Befehlszeile implementierungsspezifisch ist. für MS ist es csc; für Mono ist es gmcsund Freunde .... Ebenso auszuführen: Es ist nur "Exename" für die MS-Version, aber normalerweise "Mono Exename" für Mono.

Schließlich werden viele Projekte mit Build-Skript-Tools erstellt. MSBuild , NAnt usw.

Marc Gravell
quelle
3
Ich benutze die IDE. Aber ich musste es wissen. Es fühlt sich einfach nicht richtig an, es nicht zu wissen! Vielen Dank für Ihre Antwort.
DragonBorn
1
+1 für NAnt! LINQPad ist sehr gut zum Experimentieren mit Codefragmenten: linqpad.net
TrueWill
7

Öffnen Sie für die neueste Version zuerst ein Powershell-Fenster, wechseln Sie in einen beliebigen Ordner (z. B. c:\projects\) und führen Sie Folgendes aus

# Get nuget.exe command line
wget https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -OutFile nuget.exe

# Download the C# Roslyn compiler (just a few megs, no need to 'install')
.\nuget.exe install Microsoft.Net.Compilers

# Compiler, meet code
.\Microsoft.Net.Compilers.1.3.2\tools\csc.exe .\HelloWorld.cs

# Run it
.\HelloWorld.exe    

Ein Beispiel HelloWorld.cs

using System;

public class HelloWorld {
    public static void Main() 
    {
        Console.WriteLine("Hello world!");
    }
}

Sie können auch den neuen C # -Interpreter ausprobieren;)

.\Microsoft.Net.Compilers.1.3.2\tools\csi.exe
> Console.WriteLine("Hello world!");
Hello world!
DeepSpace101
quelle
6

So installieren Sie MSBuild mit einem eigenständigen C # 7.0-Compiler, der im neuesten .NET Framework 4.7 nicht mehr enthalten ist:

Ist es möglich, einen C # -Compiler ohne Visual Studio zu installieren?

Dann renn einfach

"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\Roslyn\csc.exe" MyApplication.cs

um eine einzelne Quelldatei in eine ausführbare Datei zu kompilieren.

Beachten Sie auch, dass .Net Core das Kompilieren einer einzelnen Quelldatei ohne vorkonfiguriertes Projekt nicht unterstützt .

Vadzim
quelle
5

LinqPad ist eine schnelle Möglichkeit, C # -Code zu testen, und es ist kostenlos.

nullsteph
quelle
2

Sie können Ihre Klassendateien über die VS-Eingabeaufforderung erstellen (sodass alle erforderlichen Umgebungsvariablen geladen werden), nicht über das Standard-Windows-Befehlsfenster.

Weitere Informationen zum Erstellen von Befehlszeilen mit csc.exe (dem Compiler) finden Sie in diesem Artikel .

Cerebrus
quelle
2

Wenn Sie Visual Studio installiert haben, haben Sie die Developer Command Prompt for VS. Sie können Ihr Programm einfach mit dem cscBefehl erstellen und Ihre Anwendung mit dem Namen der Anwendung in der Entwickler-Eingabeaufforderung ausführen.

Sie können die Entwickler-Eingabeaufforderung wie unten angegeben öffnen.

Start => Entwickler-Eingabeaufforderung für VS

Hoffe das hilft!

Hackerbuddy
quelle
2

Zum Pfad hinzufügen

C:\Windows\Microsoft.NET\Framework\v3.5

Kompilieren:

csc file.cs

Ausführen:

file
Rafiul Islam
quelle
1

Sobald Sie den c # -Code geschrieben und gespeichert haben. Sie können die Eingabeaufforderung verwenden, um sie genau wie den anderen Code auszuführen.

An der Eingabeaufforderung geben Sie das Verzeichnis ein, in dem sich Ihre Datei befindet, und geben Sie ein

Kompilieren:

mcs yourfilename.cs

Ausführen:

mono yourfilename.exe 

Wenn Sie möchten, dass Ihre EXE-Datei mit einem anderen Namen unterschiedlich ist, geben Sie ein

Kompilieren:

mcs yourfilename.cs -out:anyname.exe 

Ausführen:

mono anyname.exe 

Das sollte helfen!

Joe
quelle
1

Verwenden Sie in Windows-Systemen den Befehl csc <filname>.csan der Eingabeaufforderung, während sich das aktuelle Verzeichnis in Microsoft Visual Studio \ <Jahr> \ <Version> befindet

Es gibt zwei Möglichkeiten:

Verwenden der Eingabeaufforderung:

  1. Start -> Eingabeaufforderung
  2. Ändern Sie das Verzeichnis mit dem folgenden Befehl in den Ordner Visual Studio: cd C: \ Programme (x86) \ Microsoft Visual Studio \ 2017 \ <Version>
  3. Verwenden Sie den Befehl: csc /.cs

Verwenden der Developer-Eingabeaufforderung:

  1. Start -> Eingabeaufforderung für Entwickler für VS 2017 (Hier ist das Verzeichnis bereits auf den Ordner Visual Studio festgelegt.)

  2. Verwenden Sie den Befehl: csc /.cs

Ich hoffe es hilft!

user3789482
quelle
0

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Roslyn

Hier finden Sie den c # -Compiler, der c # 7 unterstützt. Andernfalls werden die .net 4-Compiler verwendet, die nur c # 5 unterstützen

Mohamed Fathallah
quelle
0

Ich habe eine Batch-Datei geschrieben, mit CompileCS.cmdder eine C # -Datei kompiliert (und optional ausgeführt) werden kann. Die vollständige Antwort einschließlich des Batch-Programms 'CompileCS' finden Sie hier .

Die Verwendung ist einfach:

CompileCS /run GetDotNetVersion.cs[arg1] ... [arg9]

kompiliert und führt GetDotNetVersion.cs aus - wenn Sie es nur kompilieren möchten, lassen Sie den /runParameter weg .

Die Konsolenanwendung GetDotNetVersion.cswird dieser Antwort entnommen .

Matt
quelle