C# mit CMD kompilieren?
Ich habe ein Buch über C# angefangen, und dort wird folgendermaße gezeigt, wie man eine C# Datei mit CMD kompiliert:
Das habe ich versucht so einzugeben:
Was habe ich falsch gemacht?
Ps: ich weiß, dass man mit Visual Studio ganz einfach kompilieren kann, allerdings finde ich es sehr unbefriedigend das es nicht geht und will das jetzt hinbekommen.
Danke im Vorraus
Es hat die ganze Zeit nicht geklappt, jetzt bin ich noch mal in den Ordner und habe die Anwendung Hallo.exe gefunden. Hat also doch geklappt. War also unnötig die Frage reinzustellen.
3 Antworten
Der Kompiler ist nur noch mit C# 5 kompatibel, nutz am besten den "dotnet sdk" und das Programm zu kompilieren.
Bin mir nicht sicher, gehe einfach mal in die cmd und gib "dotnet", dann sollte eine Liste mit den Befehlen erscheinen, ansonsten kannst du dir auch die dotnet sdk auf der Seite von Microsoft heruntergeladen.
Zudem würde ich dir empfehlen statt der CMD die Windows Powershell zu benutzen, hatt die gleichen Befehle ist aber Moderner.
Ja da wird einiges angezeigt und danke für den Tipp mit der Powershell
Wie kann man mit dem Dotnet Sdk kompilieren?
Kompiliere ruhig mit dem im system vorhandenen Compiler. Damit stellst Du auch sicher, das Deine Programme für einen potenziellen Nutzer auch auf anderen Win10-Rechnern ohne zusätzlich downloads von Bibliotheken /Runtimes lauffähig ist.
Für Dich als Anfänger sollte die Verwendung des im System vorinstallierten Compilers die beste Wahl sein. Was die Betriebssicherheit betrifft, so werden .Net Runtimes weiterhin aktualisiert.
Hier noch eine kleine Batch, welche automatisch den Compiler findet und eine Datei compiliert.
Einfach die Datei mit dem Quelltext auf die Batch ziehen (Droptarget)
compile_c#.cmd
@echo off
chcp 65001 >nul
if "%~1"=="" (
echo C# Compiler-Batch.
echo:
echo Ziehe eine Datei mit C#-Source auf "%~nx0" ...
timeout 7
exit /b
)
for /f "tokens=* delims=" %%v in ('dir /b /s /a:-d /o:-n "%SystemRoot%\Microsoft.NET\Framework\*csc.exe"') do (
set "csc=%%v"
)
if "%csc%"=="" (
echo Kein C#-Compiler gefunden
echo Bitte installiere Microsoft-.NetFramework!
pause
exit /b
)
echo "%csc%" gefunden.
"%csc%" /nologo /out:"%~dpn1.exe" "%~f1" >compile.log && (
echo Hat geklappt...
echo .... %~dpn1.exe...
echo Ausgabe Deines Programms:
echo:
"%~dpn1.exe"
echo:
pause
) || (
echo Compilererror...
echo:
type compile.log
echo:
pause
)
Mit der folgenden Batch brauchst Du nicht einmal einen Editor.
Einfach die Batch starten , den Code in das Fenster eingeben/einfügen und mit CTRL+Z abschließen.
c#_code_input compile.cmd
@echo off
for /f "tokens=* delims=" %%v in ('dir /b /s /a:-d /o:-n "%SystemRoot%\Microsoft.NET\Framework\*csc.exe"') do (
set "csc=%%v"
)
if "%csc%"=="" (
echo no C# compiler found
echo please install a Microsoft-dotNetFramework
pause
exit /b
)
echo "%csc%" found
set /p prgName=Name des Zielprgramms ohne .exe:
if exist %prgName%.cs (echo %prgName%.cs existiert bereits & pause & exit /b 1)
echo.
echo Code eingeben oder Code hier einfuegen.
echo abschliessen mit Ctrl+Z
copy con "%prgName%.cs" >nul
echo compiling...
"%csc%" /nologo /out:"%prgName%.exe" "%prgName%.cs"
"%prgName%.exe"
pause
Ließ doch die letzte Zeile der Meldung, das sagt dir, was falsch gelaufen ist und was du dagegen machen kannst - sogar mir Link
Das ist der Link: https://github.com/dotnet/roslyn was genau soll ich da machen
Muss sagen, mit c# hatte ich bisher noch nicht zu tun, im Zweifelsfall eben den aktuellen Compiler / das aktuelle SDK installieren
den Code den ich geschrieben habe, geht auch mit C# 5. Glaub ich
Ist der vorinstalliert?