C#使用csc.exe編譯程序,csc使用/target:library(縮寫: /t:library)參數生成Dll文件。
其它參數如下:
Visual C# 編譯器選項
- 輸出文件 -
/out:<文件> 指定輸出文件名(默認值: 包含主類的文件或第一個文件的基名稱)
/target:exe 生成控制台可執行文件(默認) (縮寫: /t:exe)
/target:winexe 生成 Windows 可執行文件 (縮寫: /t:winexe)
/target:library 生成庫 (縮寫: /t:library)
/target:mole 生成能添加到其他程序集的模塊 (縮寫: /t:mole)
/target:appcontainerexe 生成 Appcontainer 可執行文件 (縮寫: /t:appcontainerexe)
/target:winmdobj 生成 WinMDExp 使用的 Windows 運行時中間文件 (縮寫: /t:winmdobj)
/doc:<文件> 要生成的 XML 文檔文件
/platform:<字元串> 限制可以在其上運行此代碼的平台: x86、Itanium、x64、arm、anycpu32bitpreferred 或 anycpu。默認值為 anycpu。
- 輸入文件 -
/recurse:<通配符> 根據通配符規范,包括當前目錄和子目錄下的所有文件
/reference:<別名>=<文件> 使用給定的別名從指定的程序集文件引用元數據 (縮寫: /r)
/reference:<文件列表> 從指定的程序集文件引用元數據 (縮寫: /r)
/addmole:<文件列表> 將指定的模塊鏈接到此程序集中
/link:<文件列表> 嵌入指定的互操作程序集文件中的元數據 (縮寫: /l)
- 資源 -
/win32res:<文件> 指定 Win32 資源文件(.res)
/win32icon:<文件> 對輸出使用此圖標
/win32manifest:<文件> 指定 Win32 清單文件(.xml)
/nowin32manifest 不包括默認 Win32 清單
/resource:<資源信息> 嵌入指定的資源 (縮寫: /res)
/linkresource:<資源信息> 將指定的資源鏈接到此程序集 (縮寫: /linkres)
其中 resinfo 的格式是 <file>[,<string name>[,public|private]]
- 代碼生成 -
/debug[+|-] 發出調試信息
/debug:{full|pdbonly} 指定調試類型(「full」是默認類型,可以將調試程序附加到正在運行的程序)
/optimize[+|-] 啟用優化 (縮寫: /o)
- 錯誤和警告 -
/warnaserror[+|-] 將所有警告報告為錯誤
/warnaserror[+|-]:<警告列表> 將特定警告報告為錯誤
/warn:<n> 設置警告等級(0-4) (縮寫: /w)
/nowarn:<警告列表> 禁用特定的警告消息
- 語言 -
/checked[+|-] 生成溢出檢查
/unsafe[+|-] 允許「不安全」代碼
/define:<符號列表> 定義條件編譯符號 (縮寫: /d)
/langversion:<字元串> 指定語言版本模式: ISO-1、ISO-2、3、4、5 或 Default
- 安全性 -
/delaysign[+|-] 僅使用強名稱密鑰的公共部分對程序集進行延遲簽名
/keyfile:<文件> 指定強名稱密鑰文件
/keycontainer:<字元串> 指定強名稱密鑰容器
/highentropyva[+|-] 啟用高平均信息量的 ASLR
- 雜項 -
@<文件> 有關更多選項,請閱讀響應文件
/help 顯示此用法信息 (縮寫: /?)
/nologo 取消編譯器版權信息
/noconfig 不要自動包含 CSC.RSP 文件
- 高級 -
/baseaddress:<地址> 要生成的庫的基址
/bugreport:<文件> 創建「Bug 報告」文件
/codepage:<n> 指定打開源文件時要使用的代碼頁
/utf8output 以 UTF-8 編碼格式輸出編譯器消息
/main:<類型> 指定包含入口點的類型(忽略所有其他可能的入口點) (縮寫: /m)
/fullpaths 編譯器生成完全限定路徑
/filealign:<n> 指定用於輸出文件節的對齊方式
/pdb:<文件> 指定調試信息文件名(默認值: 擴展名為 .pdb 的輸出文件名)
/errorendlocation 輸出每個錯誤的結束位置的行和列
/preferreilang 指定首選輸出語言名稱。
/nostdlib[+|-] 不引用標准庫(mscorlib.dll)
/subsystemversion:<字元串> 指定此程序集的子系統版本
/lib:<文件列表> 指定要在其中搜索引用的附加目錄
/errorreport:<字元串> 指定如何處理內部編譯器錯誤: prompt、send、queue 或 none。默認值為 queue。
/appconfig:<文件> 指定一個包含程序集綁定設置的應用程序配置文件
/moleassemblyname:<字元串> 此模塊所屬程序集的名稱
B. 如何配置CSC編譯器
1.配置C#命令行編譯器:
我的電腦 —〉高級—〉環境變數—〉Path —〉添
加";C:\Windows\Microsoft.NET\Framework\v2.0.50727"(Path的最後一個路徑雖版本
的改變而改變)。csc.exe(C#命令行編譯器)就放在該目錄下。通過csc /?來查看所有參
數。
2.配置其它.NET命令行工具
我的電腦 —〉高級—〉環境變數—〉Path —〉添加";D:\Program
Files\Microsoft Visual Studio 8\SDK\v2.0\Bin"(Path隨安裝目錄的明穗改變而改變,如
果安裝在C:\,則為";C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin"
3.通過csc命令行編譯器來編譯C#文件,以下為一個例子
1)在D盤下新建一個名為test.txt文本文件,輸入以下文本後保存為test.cs文件
復制代碼 代碼如下:
//一個簡單的C#應用程序.
using System;
class TestApp
{
public static void Main()
{
Console.WriteLine("Test! 1,2,3");
Console.ReadKey();
}
}
2)運行 —〉cmd —〉D:\ —〉csc D:\test.cs, 編譯成功後在D盤下生成test.exe可執行文件
3)輸入test.exe,回車,顯示結果(Test! 1,2,3)
4.接下來通過引入System.Windows.Forms命名空間來生成Windows Forms程序,test.cs
修改為如下後再次編譯
復制代碼 代碼如下:
//一個簡單的C#應用程序.
using System;
//一定要加上下面一行
using System.Windows.Forms;
class TestApp
{
public static void Main()
{
Console.WriteLine("物槐槐Test! 1,2,3");
MessageBox.Show("Hello...","Application");
Console.ReadKey();
}
}
5.使用csc.exe編譯多個源文件
復制代碼 代碼如下:
//HelloMessage.cs
using System;
using System.Windows.Forms;
class HelloMessage
{
public void Speak()
{
MessageBox.Show("Hello");
}
}
//Test.cs
using System;
class TestApp
{
public static void Main()
{
Console.WriteLine("罩友Testing! 1,2,3");
HelloMessage h = new HelloMessage();
h.Speak();
}
}
參數/out:編譯結果的存放位置和名稱
復制代碼 代碼如下:
csc/out:e:\a.exe test.cs HelloMessage.cs
或者編譯當前目錄下的所有cs文件: csc/out:e:\a *cs
C. C# csc怎麼把cs編譯成exe
在命令行那裡輸入編譯啊,關鍵是路徑要輸對,比如說我的機器上,csc.exe在
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319
所以說你要先在命令行裡面用cd命令,把當前位置切換過去,
再 csc 源碼全路徑.cs
然後你再去csc.exe下面去找相應的exe