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命令行標志進行調試


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM