使用 csc.exe 建置命令列
您可以在命令列輸入 C# 編譯器的可執行檔名稱 (csc.exe) 以叫用該編譯器。 如果您使用 Visual Studio 命令提示字元 (捷徑位於 [開始] 功能表的 [Visual Studio Tools] 下),就會自動設定所有必要的環境變數。 否則,您必須調整路徑,以便從電腦的任何子目錄叫用 (Invoke) csc.exe。 如果不使用 Visual Studio 命令提示字元,則必須執行 vsvars32.bat 設定適當的環境變數,以支援命令列建置。 如需 vsvars32.bat 的詳細資訊,請參閱 HOW TO:設定環境變數。
如果您在只有 Windows Software Development Kit (SDK) 的電腦上工作,而且您使用 [SDK 命令提示字元] (可從 [Microsoft .NET Framework SDK] 功能表選項選取),您就可以在命令列上使用 C# 編譯器 (Compiler)。
若要從開發環境進行建置,請參閱 HOW TO:準備和管理組建。
您也可以使用 MSBuild 以程式設計的方式建置 C# 程式。 如需詳細資訊,請參閱 MSBuild。
csc.exe 可執行檔通常位於系統目錄下的 Microsoft.NET\Framework\<版本> 資料夾中。 它的位置可能會依任何個別電腦的實際組態而有所不同。 如果電腦上安裝了一個以上的 .NET Framework 版本,則電腦上會出現這個可執行檔的多個版本。 如需這類安裝的詳細資訊,請參閱判斷安裝的 .NET Framework 版本。
這個主題涵蓋下列內容:
命令列語法規則
範例命令列
C# 編譯器和 C++ 編譯器輸出的不同之處
C# 編譯器會使用下列規則,解譯在作業系統命令列上指定的引數:
引數會以空白或定位鍵的泛空白字元 (White Space) 進行分隔。
插入號字元 (^) 不會辨識為逸出字元 (Escape Character) 或分隔符號。 這個字元先由作業系統中的命令列剖析器 (Parser) 處理,再傳遞給程式中的 argv 陣列。
用雙引號括住的字串 ("string") 會解譯成單一引數,不論其內是否包含泛空白字元 (White Space)。 有引號的字串可以內嵌到引數中。
前面有反斜線的雙引號 (\") 會解譯為常值雙引號字元 (")。
反斜線會逐字解譯,除非後面緊接著雙引號。
如果偶數數目的反斜線後面接著雙引號,在 argv 陣列中會用一條反斜線代表一對反斜線,雙引號則會轉譯為字串分隔符號。
如果奇數數目的反斜線後面接著雙引號,在 argv 陣列中會用一條反斜線代表一對反斜線,雙引號則會使用剩下的反斜線「逸出」。 這樣會在 argv 中加入常值雙引號 (")。
編譯 File.cs 產生 File.exe:
csc File.cs
編譯 File.cs 產生 File.dll:
csc /target:library File.cs
編譯 File.cs 和建立 My.exe:
csc /out:My.exe File.cs
在啟用最佳化和定義 DEBUG 符號情況下,編譯目前目錄中的所有 C# 檔案。 輸出為 File2.exe:
csc /define:DEBUG /optimize /out:File2.exe *.cs
編譯目前目錄中的所有 C# 檔案,產生 File2.dll 的偵錯版本。 不顯示標幟和警告:
csc /target:library /out:File2.dll /warn:0 /nologo /debug *.cs
將目前目錄中的所有 C# 檔案編譯成 Something.xyz (一個 DLL):
csc /target:library /out:Something.xyz *.cs
叫用 C# 編譯器時並不會建立目的檔 (.obj),而是直接建立輸出檔。 因此,C# 編譯器並不需要連結器 (Linker)。