การคอมไพล์ / ดำเนินการไฟล์ต้นฉบับ C # ในพร้อมท์คำสั่ง


คำตอบ:


140

CSC.exe เป็นคอมไพเลอร์ CSharp ที่รวมอยู่ใน. NET Framework และสามารถใช้ในการคอมไพล์จากพรอมต์คำสั่ง ผลลัพธ์อาจเป็นไฟล์ปฏิบัติการ ".exe" หากคุณใช้ "/ target: exe" หรือ DLL หากคุณใช้ / target: library CSC.exe จะพบได้ในไดเรกทอรี. NET Framework

เช่นสำหรับ NET c:\windows\Microsoft.NET\Framework\v3.5\3.5,

ในการทำงานครั้งแรกที่เปิดพร้อมรับคำสั่งให้คลิกที่ "Start" cmd.exeจากนั้นพิมพ์
จากนั้นคุณอาจต้อง cd ลงในไดเรกทอรีที่เก็บแฟ้มต้นฉบับของคุณ

เรียกใช้คอมไพเลอร์ C # ดังนี้:

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

(ทั้งหมดในบรรทัดเดียว)

หากคุณมีโมดูลแหล่งรวบรวมมากกว่าหนึ่งโมดูลคุณสามารถวางไว้บนบรรทัดคำสั่งเดียวกันนั้นได้ หากคุณมีการประกอบการอื่น ๆ /r:AssemblyName.dllเพื่อการอ้างอิงการใช้งาน

ตรวจสอบให้แน่ใจว่าคุณกำหนดเมธอด Main () แบบคงที่ในคลาสใดคลาสหนึ่งของคุณเพื่อทำหน้าที่เป็น "จุดเข้าใช้งาน"

หากต้องการรัน EXE ที่เป็นผลลัพธ์ให้พิมพ์MyApplicationตามด้วยการ<ENTER>ใช้พรอมต์คำสั่ง

บทความเกี่ยวกับ MSDN นี้จะอธิบายรายละเอียดเพิ่มเติมเกี่ยวกับตัวเลือกสำหรับคอมไพเลอร์บรรทัดคำสั่ง คุณสามารถฝังทรัพยากรตั้งไอคอนลงนามชุดประกอบ - ทุกสิ่งที่คุณทำได้ภายใน Visual Studio

หากคุณติดตั้ง Visual Studio ใน "เมนูเริ่ม"; ภายใต้เครื่องมือ Visual Studio คุณสามารถเปิด "พรอมต์คำสั่ง Visual Studio" ซึ่งจะตั้งค่าสภาพแวดล้อมและตัวแปรพา ธ ที่จำเป็นทั้งหมดสำหรับการคอมไพล์บรรทัดคำสั่ง

ในขณะที่มันมีประโยชน์มากที่จะทราบสิ่งนี้คุณควรรวมเข้ากับความรู้ของเครื่องมือสร้างเช่นNAnt , MSBuild , FinalBuilderฯลฯ เครื่องมือเหล่านี้มีสภาพแวดล้อมการสร้างที่สมบูรณ์ไม่ใช่แค่คอมไพเลอร์พื้นฐาน

บน Mac

บน Mac ไวยากรณ์จะคล้ายกันมีเพียง C sharp Compiler เท่านั้นที่ตั้งชื่อcsc:

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

จากนั้นเรียกใช้:

$ mono MyApplication.exe

1
ถ้าฉันจำได้ถูกต้องคุณสามารถคอมไพล์และ exe ได้ถ้าคุณมีคลาสแบบสแตติกที่มีเมธอด Main
cjk

คอมไพเลอร์เตือนคุณวันนี้ถ้าคุณไม่ได้ แต่จุดที่ดีฉันจะเพิ่มที่คำตอบขอบคุณ
Ash

5
นี่มันเจ๋งมาก. จำเป็นต้องรวบรวมแอพ C # ขนาดเล็กและไม่สนใจการสัมผัส Visual Studio ขอบคุณ!
ColinM

1
ใน Win10 ผมพบว่ามีเหมือง:C:\Program Files (x86)\MSBuild\14.0\Bin\csc.exe
TrakJohnson

17

อีกวิธีในการคอมไพล์โปรแกรม C # (โดยไม่ต้องใช้ Visual Studio หรือไม่ได้ติดตั้งไว้) คือการสร้างตัวแปรผู้ใช้ในตัวแปรสภาพแวดล้อมนั่นคือ "PATH"

คัดลอกพา ธ ต่อไปนี้ในตัวแปรนี้:

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

หรือขึ้นอยู่กับ. NET ที่พีซีของคุณมี

ดังนั้นคุณไม่ต้องพูดถึงเส้นทางทั้งหมดทุกครั้งที่คุณรวบรวมรหัส เพียงใช้

"C: \ Users \ ชื่อผู้ใช้ \ เดสก์ทอป> csc [ตัวเลือก] filename.cs"

หรือเส้นทางของรหัสของคุณคือ

ตอนนี้คุณก็พร้อมแล้ว


15

คุณสามารถรวบรวมโปรแกรม C #:

c:> csc Hello.cs

คุณสามารถเรียกใช้โปรแกรม

c:> สวัสดี


1
ถ้าฉันใช้ห้องสมุดเพิ่มเติม ฉันพบข้อผิดพลาดที่ไม่พบชุดประกอบ ... จะแก้ไขได้อย่างไร
Nikas Žalias

คุณต้องแน่ใจก่อนว่าเส้นทางไปยังคอมไพเลอร์อยู่ในตัวแปรสภาพแวดล้อม
Dame Lyngdoh

@ NikasŽalias เช่น csc Hello.cs -langversion: การอ้างอิงล่าสุด: System.Net.Http.dll
Alex Nolasco

8

สำหรับรุ่นล่าสุดให้เปิดหน้าต่าง Powershell ก่อนไปที่โฟลเดอร์ใด ๆ (เช่นc:\projects\) และเรียกใช้สิ่งต่อไปนี้

# 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    

ตัวอย่าง HelloWorld.cs

using System;

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

คุณสามารถลองล่าม C # ใหม่;)

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

7

ในขณะที่มันเป็นสิ่งที่ดีที่รู้วิธีการสร้างที่บรรทัดคำสั่งสำหรับการทำงานส่วนใหญ่มันอาจจะง่ายต่อการใช้ IDE รุ่นด่วน C # นั้นฟรีและดีมากสำหรับเงิน ;-p

อีกวิธีหนึ่งเช่นsnippyสามารถใช้เพื่อเรียกใช้ส่วนของรหัส C #

สุดท้าย - โปรดทราบว่าบรรทัดคำสั่งเป็นการใช้เฉพาะ สำหรับ MS มันคือcsc; สำหรับmonoมันคือgmcsและเพื่อน ๆ .... ในทำนองเดียวกันในการดำเนินการ: มันเป็นเพียง "exename" สำหรับรุ่น MS แต่โดยทั่วไปแล้ว "mono exename" สำหรับ mono

ในที่สุดหลายโครงการจะสร้างด้วยเครื่องมือสร้างสคริปต์ MSBuild , NAnt , ฯลฯ


3
ฉันใช้ IDE แต่ฉันจำเป็นต้องรู้ แค่รู้สึกไม่ถูกไม่รู้ไม่รู้! ขอบคุณมากสำหรับคำตอบของคุณ
DragonBorn

1
+1 สำหรับ NAnt! LinqPad เป็นสิ่งที่ดีมากสำหรับการทดลองกับรหัสชิ้นส่วน: linqpad.net
TrueWill

6

นี่คือวิธีการติดตั้ง MSBuild ด้วยคอมไพเลอร์ C # 7.0 แบบสแตนด์อโลนซึ่งไม่ได้รวมอยู่ใน. Net Framework 4.7 อีกต่อไป:

เป็นไปได้ไหมที่จะติดตั้ง C # คอมไพเลอร์โดยไม่มี Visual Studio?

จากนั้นก็วิ่ง

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

เพื่อคอมไพล์ไฟล์ต้นฉบับไฟล์เดียวเพื่อเรียกใช้งานได้

โปรดทราบว่า. Net Core ไม่สนับสนุนการรวบรวมไฟล์ต้นฉบับเดี่ยวโดยไม่ต้องมีโครงการที่กำหนดค่าไว้ล่วงหน้า



2

คุณสามารถสร้างไฟล์คลาสของคุณภายในพรอมต์คำสั่ง VS (เพื่อให้โหลดตัวแปรสภาพแวดล้อมที่จำเป็นทั้งหมด) ไม่ใช่หน้าต่างคำสั่งเริ่มต้นของ Windows

หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับบรรทัดคำสั่งอาคาร csc.exe (คอมไพเลอร์) ดูบทความนี้


2

หากคุณติดตั้ง Visual Studio คุณจะมีพรอมต์คำสั่งสำหรับนักพัฒนาสำหรับ VS คุณสามารถสร้างโปรแกรมของคุณได้อย่างง่ายดายโดยใช้cscคำสั่งและเรียกใช้แอปพลิเคชันของคุณด้วยชื่อของแอปพลิเคชันภายในพรอมต์คำสั่งของผู้พัฒนา

คุณสามารถเปิดพรอมต์คำสั่งสำหรับนักพัฒนาซอฟต์แวร์ตามที่ระบุด้านล่าง

เริ่ม => พรอมต์คำสั่งสำหรับนักพัฒนาสำหรับ VS

หวังว่านี่จะช่วยได้!


2

เพิ่มไปยังเส้นทาง

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

เพื่อรวบรวม:

csc file.cs

เพื่อดำเนินการ:

file

1

เมื่อคุณเขียนรหัส c # และบันทึก คุณสามารถใช้พรอมต์คำสั่งเพื่อดำเนินการเช่นเดียวกับรหัสอื่น ๆ

ในพรอมต์คำสั่งคุณป้อนไดเรกทอรีไฟล์ของคุณอยู่และพิมพ์

เพื่อรวบรวม:

mcs yourfilename.cs

เพื่อดำเนินการ:

mono yourfilename.exe 

หากคุณต้องการให้ไฟล์. exe แตกต่างกันด้วยชื่ออื่นให้พิมพ์

เพื่อรวบรวม:

mcs yourfilename.cs -out:anyname.exe 

เพื่อดำเนินการ:

mono anyname.exe 

สิ่งนี้จะช่วยได้!


1

ในระบบ Windows ให้ใช้คำสั่งcsc <filname>.csในพร้อมท์คำสั่งขณะที่ไดเรกทอรีปัจจุบันอยู่ใน Microsoft Visual Studio \ <Year> \ <Version>

มีสองวิธี:

ใช้พรอมต์คำสั่ง:

  1. เริ่ม -> พร้อมรับคำสั่ง
  2. เปลี่ยนไดเรกทอรีเป็นโฟลเดอร์ Visual Studio โดยใช้คำสั่ง: cd C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ <Version>
  3. ใช้คำสั่ง: csc /.cs

การใช้พรอมต์คำสั่งของนักพัฒนา:

  1. เริ่มต้น -> พรอมต์คำสั่งสำหรับนักพัฒนาสำหรับ VS 2017 (ที่นี่ไดเรกทอรีถูกกำหนดเป็นโฟลเดอร์ Visual Studio แล้ว)

  2. ใช้คำสั่ง: csc /.cs

หวังว่ามันจะช่วย!


0

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

นี่คือที่ที่คุณสามารถค้นหาคอมไพเลอร์ c # ที่รองรับ c # 7 มิฉะนั้นจะใช้คอมไพเลอร์. net 4 ซึ่งรองรับเฉพาะ c # 5



0

ฉันได้เขียนไฟล์ชุดCompileCS.cmdซึ่งจะช่วยในการรวบรวม (และเลือกที่จะเรียกใช้บริการ) # ไฟล์ C, คุณสามารถหาคำตอบที่สมบูรณ์รวมทั้งโปรแกรมชุด 'CompileCS' ที่นี่

มันใช้งานง่าย:

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

จะรวบรวมและเรียกใช้ GetDotNetVersion.cs - หากคุณต้องการรวบรวมให้ละเว้น/runพารามิเตอร์

แอปพลิเคชันคอนโซลGetDotNetVersion.csนำมาจากคำตอบนี้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.