Kompilowanie / wykonywanie pliku źródłowego C # w wierszu polecenia


Odpowiedzi:


140

CSC.exe to kompilator CSharp zawarty w programie .NET Framework i może być używany do kompilowania z wiersza polecenia. Dane wyjściowe mogą być plikiem wykonywalnym „.exe”, jeśli używasz „/ target: exe” lub DLL; Jeśli używasz / target: library, CSC.exe znajduje się w katalogu .NET Framework,

np dla .NET 3.5 c:\windows\Microsoft.NET\Framework\v3.5\.

Aby uruchomić, najpierw otwórz wiersz poleceń, kliknij „Start”, a następnie wpisz cmd.exe.
Być może będziesz musiał przejść do katalogu, w którym znajdują się pliki źródłowe.

Uruchom kompilator C # w następujący sposób:

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

(wszystko w jednej linii)

Jeśli masz więcej niż jeden moduł źródłowy do skompilowania, możesz umieścić go w tej samej linii poleceń. Jeśli masz inne zestawy do odniesienia, użyj /r:AssemblyName.dll.

Upewnij się, że masz zdefiniowaną statyczną metodę Main () w jednej z klas, która będzie działać jako „punkt wejścia”.

Aby uruchomić wynikowy plik EXE, wpisz MyApplication, a następnie <ENTER>użyj wiersza polecenia.

W tym artykule w witrynie MSDN szczegółowo omówiono opcje kompilatora wiersza polecenia. Możesz osadzać zasoby, ustawiać ikony, podpisywać zestawy - wszystko, co możesz zrobić w programie Visual Studio.

Jeśli masz zainstalowany program Visual Studio, w „menu Start”; w programie Visual Studio Tools można otworzyć „wiersz polecenia programu Visual Studio”, w którym zostaną skonfigurowane wszystkie wymagane zmienne środowiskowe i ścieżki do kompilacji w wierszu polecenia.

Chociaż wiedza o tym jest bardzo przydatna, należy ją połączyć ze znajomością jakiegoś narzędzia do budowania, takiego jak NAnt , MSBuild , FinalBuilder itp. Te narzędzia zapewniają kompletne środowisko kompilacji, a nie tylko podstawowy kompilator.

Na komputerze Mac

Na komputerze Mac składnia jest podobna, tylko nazwano tylko kompilator Cisis csc:

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

Następnie, aby go uruchomić:

$ mono MyApplication.exe

1
jeśli dobrze pamiętam, możesz skompilować do i exe tylko wtedy, gdy masz klasę statyczną z metodą Main.
cjk

Kompilator ostrzega cię ostatnio, jeśli tego nie zrobiłeś, ale dobra uwaga, dodam to do odpowiedzi, dzięki.
Ash

5
To jest niesamowite. Potrzebne do skompilowania małej aplikacji C # i nie interesuje nas dotykanie programu Visual Studio. Dzięki!
ColinM,

1
W Win10 znalazłem tam swoje:C:\Program Files (x86)\MSBuild\14.0\Bin\csc.exe
TrakJohnson

17

Innym sposobem kompilacji programów C # (bez użycia Visual Studio lub bez jego zainstalowania) jest utworzenie zmiennej użytkownika w zmiennych środowiskowych, a mianowicie „PATH”.

Skopiuj następującą ścieżkę w tej zmiennej:

„C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319”

lub w zależności od tego, który .NET ma twój komputer.

Nie musisz więc wymieniać całej ścieżki za każdym razem, gdy kompilujesz kod. Po prostu użyj

„C: \ Users \ nazwa_użytkownika \ Pulpit> csc [opcje] nazwa_pliku.cs”

lub gdziekolwiek jest ścieżka twojego kodu.

Teraz możesz już iść.


15

Możesz skompilować program w C #:

c:> csc Hello.cs

Możesz uruchomić program

c:> Witam


1
A jeśli korzystam z dodatkowych bibliotek? Otrzymuję błędy, że nie znaleziono zestawów ... Jak to naprawić?
Nikas Žalias

Najpierw musiałbyś się upewnić, że ścieżka do kompilatora znajduje się w zmiennych środowiskowych.
Dame Lyngdoh

@ NikasŽalias. Np. Csc Hello.cs -langversion: latest -reference: System.Net.Http.dll
Alex Nolasco

8

Aby uzyskać najnowszą wersję, najpierw otwórz okno Powershell, przejdź do dowolnego folderu (np. c:\projects\) I uruchom następujące

# 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    

Przykład HelloWorld.cs

using System;

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

Możesz także wypróbować nowy interpreter C #;)

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

7

Chociaż zdecydowanie dobrze jest wiedzieć, jak budować z wiersza poleceń, w przypadku większości prac może być łatwiejsze korzystanie z IDE. Wersja ekspresowa C # jest bezpłatna i bardzo dobra dla pieniędzy ;-p

Alternatywnie, rzeczy takie jak snippy mogą być używane do uruchamiania fragmentów kodu C #.

Wreszcie - zwróć uwagę, że wiersz poleceń jest specyficzny dla implementacji; w przypadku stwardnienia rozsianego to jest csc; dla mono , to jest gmcsi przyjaciele .... Podobnie, aby wykonać: jest to po prostu „exename” dla wersji MS, ale zazwyczaj „mono exename” dla mono.

Wreszcie, wiele projektów jest budowanych za pomocą narzędzi do tworzenia skryptów; MSBuild , NAnt itp.


3
Używam IDE. Ale musiałem wiedzieć. Po prostu nie czuje się dobrze nie wiedząc! Bardzo dziękuję za odpowiedź.
DragonBorn

1
+1 dla NAnt! LINQPad jest bardzo dobry do eksperymentowania z fragmentami kodu: linqpad.net
TrueWill

6

Oto jak zainstalować program MSBuild z samodzielnym kompilatorem C # 7.0, który nie jest już dołączony do najnowszej platformy .Net Framework 4.7:

Czy można zainstalować kompilator C # bez programu Visual Studio?

Potem po prostu biegnij

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

skompilować pojedynczy plik źródłowy do pliku wykonywalnego.

Należy również zauważyć, że .Net Core nie obsługuje kompilowania pojedynczego pliku źródłowego bez wstępnie skonfigurowanego projektu.



2

Pliki klas można budować w wierszu polecenia programu VS (tak, aby ładowane były wszystkie wymagane zmienne środowiskowe), a nie w domyślnym oknie poleceń systemu Windows.

Aby dowiedzieć się więcej o tworzeniu wiersza poleceń za pomocą csc.exe (kompilatora), zobacz ten artykuł .


2

Jeśli masz zainstalowany program Visual Studio, masz wiersz polecenia dewelopera dla programu VS. Możesz łatwo zbudować program za pomocą cscpolecenia i uruchomić aplikację z nazwą aplikacji w wierszu polecenia programisty.

Możesz otworzyć wiersz polecenia programisty, jak podano poniżej.

Start => Wiersz polecenia programisty dla VS

Mam nadzieję że to pomoże!


2

Dodaj do ścieżki

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

Kompilować:

csc file.cs

Wykonać:

file

1

Po napisaniu kodu C # i zapisaniu go. Możesz użyć wiersza polecenia, aby wykonać go tak jak inny kod.

W wierszu poleceń wpisujesz katalog, w którym znajduje się plik, i wpisujesz

Kompilować:

mcs yourfilename.cs

Wykonać:

mono yourfilename.exe 

jeśli chcesz, aby Twój plik .exe był inny i miał inną nazwę, wpisz

Kompilować:

mcs yourfilename.cs -out:anyname.exe 

Wykonać:

mono anyname.exe 

To powinno pomóc!


1

W systemach Windows użyj polecenia csc <filname>.csw wierszu polecenia, gdy bieżący katalog znajduje się w Microsoft Visual Studio \ <Rok> \ <Wersja>

Istnieją dwa sposoby:

Za pomocą wiersza poleceń:

  1. Start -> Wiersz polecenia
  2. Zmień katalog na folder Visual Studio, używając polecenia: cd C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ <wersja>
  3. Użyj polecenia: csc /.cs

Korzystanie z wiersza polecenia dewelopera:

  1. Start -> Developer Command Prompt for VS 2017 (tutaj katalog jest już ustawiony na folder Visual Studio)

  2. Użyj polecenia: csc /.cs

Mam nadzieję, że to pomoże!


0

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

tutaj możesz znaleźć kompilator C #, który obsługuje C # 7, w przeciwnym razie użyje kompilatorów .net 4, który obsługuje tylko C # 5



0

Napisałem plik wsadowy, CompileCS.cmdktóry pozwala skompilować (i opcjonalnie uruchomić) plik C #, pełną odpowiedź, w tym program wsadowy „CompileCS”, znajdziesz tutaj .

Jego użycie jest proste:

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

skompiluje i uruchomi GetDotNetVersion.cs - jeśli chcesz go tylko skompilować, pomiń /runparametr.

Aplikacja konsoli GetDotNetVersion.csjest zaczerpnięta z tej odpowiedzi .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.