C#命令行编辑器csc.exe
生活随笔
收集整理的這篇文章主要介紹了
C#命令行编辑器csc.exe
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
csc.exe是.NET Framework SDK中的一個工具,當然用VS舒服多了...
不怕麻煩或者小硬盤的可以用用看,下面是些基本編輯,編譯,調試操作(很不詳細,詳細請看MSDN :) ):
1.配置C#命令行編輯器:
我的電腦 - 屬性 - 高級 - 環境變量 - 系統變量列表對話框 - 雙擊Path變量 -?
在當前路徑值的末尾加入(路徑變量里各值用分號區隔): C:\Windows\Microsoft.NET\Framework\v2.0.50727 (注意,路徑和版本號會因為你的安裝和下載的不同而不同,自己到安裝目錄下看看) 如果配置成功,在命令窗口中輸入: csc /? 將顯示C#編譯器支持的選項列表. 2.配置其他.NET命令行工具:
將附加路徑變量加入系統變量列表框: C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin 如果配置成功,在命令窗口中輸入:gacutil /? 查看GAC工具gacutil.exe的各個選項. 3.使用csc.exe和記事本構建C#應用程序:
- 使用記事本編輯源代碼,并保存為.cs格式,如TestApp.cs,存儲路徑C:\CscExample\
//TestApp.cs?
using System;
class TestApp
{
?? public static void Main()
?? {
??? Console.WriteLine("Testing!");
?? }
}
- 打開cmd,轉到源文件保存的目錄
- 輸入命令: csc /target:exe TestApp.cs 將TestApp.cs編譯成名為TestApp.exe的console應用程序 C#編譯器的輸出選項(詳細查閱相關手冊或MSDN):
選項??? 作用
------------------------------------------------------------------------------------------------------------------
/out??? 該選項用于指定被構建出的程序集的名字。默認條件下,程序集的名字或者與最初輸入的*.cs文件名字相同(生成
??? *.dll文件的情況下),或者與包含程序的Main()方法的那個類型的名字相同(生成*.exe文件的情況下)
------------------------------------------------------------------------------------------------------------------
/target:exe?? 本選項構建一個可執行的控制臺應用程序。這是默認的文件輸出類型,并且在創建該應用程序類型時可被忽略。
------------------------------------------------------------------------------------------------------------------
/target:library 本選項構建一個單一文件*.dll程序集。
------------------------------------------------------------------------------------------------------------------
/target:module 本選項構建一個模塊(module)。所謂模塊是指組成多文件程序集的元素。
------------------------------------------------------------------------------------------------------------------
/target:winexe 本選項構建一個可執行的windows應用程序,盡管使用/target:exe也能創建窗體應用程序,但本選項創建的程序
??? 運行時不會有控制窗口出現在桌面背景上。
------------------------------------------------------------------------------------------------------------------ 4.引用外部程序集:
修改TestApp.cs,顯示一個Windows窗體消息框:
//TestApp.cs?
using System;
using System.Windows.Forms; class TestApp
{
?? public static void Main()
?? {
??? Console.WriteLine("Testing!");
??? MessageBox.Show("Hello!");
?? }
}
在命令行中,必須通知csc.exe,哪個程序集包含了“所用的“命名空間。因此,必須使用/reference標志指定System.Windows.Forms.dll csc /reference:System.Windows.Forms.dll TestApp.cs 5.使用csc.exe編譯多個源文件:
- 顯式的列出各個導入文件來編譯C#文件: csc /r:System.Windows.Forms.dll TestApp.cs HelloMsg.cs
- 使用通配符(*)通知csc.exe: csc /r:System.Windows.Forms.dll *.cs
//TestApp.cs
using System; class TestApp
{
?? public static void Main()
?? {
??? Console.WriteLine("Testing!");
??? HelloMessage h = new HelloMessage();
??? h.Speak();
?? }
} //HelloMsg.cs
using System;
using System.Windows.Forms; class HelloMessage
{
?? public void Speak()
?? {
??? MessageBox.Show("Hello!");
?? }
} 6.引用多個外部程序集:
- 使用分號列出各個程序集: csc /r:System.Windows.Forms.dll;System.Drawing.dll *.cs 7.使用csc.exe響應文件(respose file):
- C#響應文件包含了在當前構建的編譯期間要用到的所有指令,通常約定,響應文件的擴展名為*.rsp
- 響應文件中注釋使用“#”字符標識
- 在編譯指令中響應文件前加@符號: csc @TestApp.rsp
- /reference標志具有累加性,而其他標志(如/out)將用后面的命令覆蓋前面的命令
- 可以指定多個響應文件作為輸入(例如csc @FirstFile.rsp @SecondFile.rsp @ThirdFile.rsp)
- 也可混合使用響應文件和標志(例如csc /out:TestApp.exe @TestApp.rsp) # 建立4中TestApp.exe的響應文件 TestApp.rsp
#
# 外部程序集引用
/r:System.Windows.Forms.dll
#
# 用于編譯的輸出和文件
/target:exe /out:TestApp.exe *.cs 8.默認的響應文件csc.rsp:
- C#編譯器有一個相關聯的默認響應文件csc.rsp, 該響應文件與csc.exe在同一目錄.
- 當用csc.exe構建C#程序時,該文件將自動被引用(即使提供了自定義*.rsp文件時)
- 要取消自動讀取csc.rsp,可以指定 /noconfig 選項
################################################################################
命令行調試器(cordbg.exe): - 使用cordbg /? 查看調試器提供的標志選項 部分有用的cordbg.exe命令行標志:
標志(全稱/縮寫) 作用
----------------------------------------------------
b[reak]?? 設定或顯示當前斷點
del[ete]?? 去除一個或多個斷點
ex[it]??? 退出調試器
g[o]??? 繼續調試當前進程直至發現下一個斷點
o[ut]??? 退出當前函數
p[rint]??? 打印所有加載的變量(局部,實參等)
si??? 進入下一行
so??? 越過下一行
----------------------------------------------------
在命令行進行調試:
- 給應用程序生成調式數據: csc @TestApp.rsp /debug , 將生成一個名為TestApp.pdb的關聯文件
- 將欲調試的.NET程序集指定為命令行實參,進入調試模式(*.pdb文件將被自動加載: cordbg.exe TestApp.exe?
- 使用cordbg.exe命令行標志進行調試
不怕麻煩或者小硬盤的可以用用看,下面是些基本編輯,編譯,調試操作(很不詳細,詳細請看MSDN :) ):
1.配置C#命令行編輯器:
我的電腦 - 屬性 - 高級 - 環境變量 - 系統變量列表對話框 - 雙擊Path變量 -?
在當前路徑值的末尾加入(路徑變量里各值用分號區隔): C:\Windows\Microsoft.NET\Framework\v2.0.50727 (注意,路徑和版本號會因為你的安裝和下載的不同而不同,自己到安裝目錄下看看) 如果配置成功,在命令窗口中輸入: csc /? 將顯示C#編譯器支持的選項列表. 2.配置其他.NET命令行工具:
將附加路徑變量加入系統變量列表框: C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin 如果配置成功,在命令窗口中輸入:gacutil /? 查看GAC工具gacutil.exe的各個選項. 3.使用csc.exe和記事本構建C#應用程序:
- 使用記事本編輯源代碼,并保存為.cs格式,如TestApp.cs,存儲路徑C:\CscExample\
//TestApp.cs?
using System;
class TestApp
{
?? public static void Main()
?? {
??? Console.WriteLine("Testing!");
?? }
}
- 打開cmd,轉到源文件保存的目錄
- 輸入命令: csc /target:exe TestApp.cs 將TestApp.cs編譯成名為TestApp.exe的console應用程序 C#編譯器的輸出選項(詳細查閱相關手冊或MSDN):
選項??? 作用
------------------------------------------------------------------------------------------------------------------
/out??? 該選項用于指定被構建出的程序集的名字。默認條件下,程序集的名字或者與最初輸入的*.cs文件名字相同(生成
??? *.dll文件的情況下),或者與包含程序的Main()方法的那個類型的名字相同(生成*.exe文件的情況下)
------------------------------------------------------------------------------------------------------------------
/target:exe?? 本選項構建一個可執行的控制臺應用程序。這是默認的文件輸出類型,并且在創建該應用程序類型時可被忽略。
------------------------------------------------------------------------------------------------------------------
/target:library 本選項構建一個單一文件*.dll程序集。
------------------------------------------------------------------------------------------------------------------
/target:module 本選項構建一個模塊(module)。所謂模塊是指組成多文件程序集的元素。
------------------------------------------------------------------------------------------------------------------
/target:winexe 本選項構建一個可執行的windows應用程序,盡管使用/target:exe也能創建窗體應用程序,但本選項創建的程序
??? 運行時不會有控制窗口出現在桌面背景上。
------------------------------------------------------------------------------------------------------------------ 4.引用外部程序集:
修改TestApp.cs,顯示一個Windows窗體消息框:
//TestApp.cs?
using System;
using System.Windows.Forms; class TestApp
{
?? public static void Main()
?? {
??? Console.WriteLine("Testing!");
??? MessageBox.Show("Hello!");
?? }
}
在命令行中,必須通知csc.exe,哪個程序集包含了“所用的“命名空間。因此,必須使用/reference標志指定System.Windows.Forms.dll csc /reference:System.Windows.Forms.dll TestApp.cs 5.使用csc.exe編譯多個源文件:
- 顯式的列出各個導入文件來編譯C#文件: csc /r:System.Windows.Forms.dll TestApp.cs HelloMsg.cs
- 使用通配符(*)通知csc.exe: csc /r:System.Windows.Forms.dll *.cs
//TestApp.cs
using System; class TestApp
{
?? public static void Main()
?? {
??? Console.WriteLine("Testing!");
??? HelloMessage h = new HelloMessage();
??? h.Speak();
?? }
} //HelloMsg.cs
using System;
using System.Windows.Forms; class HelloMessage
{
?? public void Speak()
?? {
??? MessageBox.Show("Hello!");
?? }
} 6.引用多個外部程序集:
- 使用分號列出各個程序集: csc /r:System.Windows.Forms.dll;System.Drawing.dll *.cs 7.使用csc.exe響應文件(respose file):
- C#響應文件包含了在當前構建的編譯期間要用到的所有指令,通常約定,響應文件的擴展名為*.rsp
- 響應文件中注釋使用“#”字符標識
- 在編譯指令中響應文件前加@符號: csc @TestApp.rsp
- /reference標志具有累加性,而其他標志(如/out)將用后面的命令覆蓋前面的命令
- 可以指定多個響應文件作為輸入(例如csc @FirstFile.rsp @SecondFile.rsp @ThirdFile.rsp)
- 也可混合使用響應文件和標志(例如csc /out:TestApp.exe @TestApp.rsp) # 建立4中TestApp.exe的響應文件 TestApp.rsp
#
# 外部程序集引用
/r:System.Windows.Forms.dll
#
# 用于編譯的輸出和文件
/target:exe /out:TestApp.exe *.cs 8.默認的響應文件csc.rsp:
- C#編譯器有一個相關聯的默認響應文件csc.rsp, 該響應文件與csc.exe在同一目錄.
- 當用csc.exe構建C#程序時,該文件將自動被引用(即使提供了自定義*.rsp文件時)
- 要取消自動讀取csc.rsp,可以指定 /noconfig 選項
################################################################################
命令行調試器(cordbg.exe): - 使用cordbg /? 查看調試器提供的標志選項 部分有用的cordbg.exe命令行標志:
標志(全稱/縮寫) 作用
----------------------------------------------------
b[reak]?? 設定或顯示當前斷點
del[ete]?? 去除一個或多個斷點
ex[it]??? 退出調試器
g[o]??? 繼續調試當前進程直至發現下一個斷點
o[ut]??? 退出當前函數
p[rint]??? 打印所有加載的變量(局部,實參等)
si??? 進入下一行
so??? 越過下一行
----------------------------------------------------
在命令行進行調試:
- 給應用程序生成調式數據: csc @TestApp.rsp /debug , 將生成一個名為TestApp.pdb的關聯文件
- 將欲調試的.NET程序集指定為命令行實參,進入調試模式(*.pdb文件將被自動加載: cordbg.exe TestApp.exe?
- 使用cordbg.exe命令行標志進行調試
轉載于:https://www.cnblogs.com/gorechen/p/4169096.html
總結
以上是生活随笔為你收集整理的C#命令行编辑器csc.exe的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: poj 1164 The Castle
- 下一篇: DevExpress ASP.NET 使