C# mit CMD kompilieren?


20.02.2021, 20:02

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

Vom Beitragsersteller als hilfreich ausgezeichnet

Der Kompiler ist nur noch mit C# 5 kompatibel, nutz am besten den "dotnet sdk" und das Programm zu kompilieren.

Woher ich das weiß:Hobby – Ich interessiere mich für das programmieren und Informatik

18363617 
Beitragsersteller
 20.02.2021, 19:43

Ist der vorinstalliert?

EnderLuca  20.02.2021, 19:47
@18363617

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.

18363617 
Beitragsersteller
 20.02.2021, 19:50
@EnderLuca

Ja da wird einiges angezeigt und danke für den Tipp mit der Powershell

18363617 
Beitragsersteller
 20.02.2021, 19:52
@EnderLuca

Wie kann man mit dem Dotnet Sdk kompilieren?

EnderLuca  20.02.2021, 19:55
@18363617

dotnet build <script> und wenn du es in der Konsole ausführen möchtest: dotnet run <script>

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
Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren

Ließ doch die letzte Zeile der Meldung, das sagt dir, was falsch gelaufen ist und was du dagegen machen kannst - sogar mir Link


18363617 
Beitragsersteller
 20.02.2021, 19:39

den Code den ich geschrieben habe, geht auch mit C# 5. Glaub ich