C#命令行編譯器的步驟介紹


下面我給大家講解一下如何配置C#命令行編譯器

1.配置C#命令行編譯器:
我的電腦 —〉高級 —〉環境變量 —〉Path —〉添加";C:\Windows\Microsoft.NET\Framework\v2.0.50727"(Path的最后一個路徑雖版本的改變而改變)。csc.exe(C#命令行編譯器)就放在該目錄下。通過csc /?來查看所有參數。

2.配置其它.NET命令行工具
我的電腦 —〉高級 —〉環境變量 —〉Path —〉添加";D:\ProgramFiles\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#命令行編譯器就成功了。

出處:http://developer.51cto.com/art/200908/144575.htm

====================================================================================

學習C#時,有時真的不喜歡用VS來做,在點IDE風頭蓋過程序本身,受到的干擾很多。不如用cmd窗口來得方便,而且還可以學習一些編譯器選項,現在總結一些少經驗:


編譯出來的exe程序那里去了?

打開 Visual Studio 20XX, 命令提示,我現在以2008為例,看到以下界面:

於是,你可以在里面輸入CSC編程命令了,我來一個最簡單的如:

CSC /target:exe "D:\C#學習\應用程序配置練習\Example_2.cs"   

上行命令中的紅色部分,是否要自己輸入呢?每次都輸入不是很麻煩!事實上用,只要輸入前面的部分后,將文件拖放到cmd窗口中,路徑就自動加上去了。

但是不是每一次編譯都必須拖放呢?也不用,使用鍵盤上的上下方向鍵就可以將以前輸入的命令調出來。

好的,程序編譯完成了,沒有錯誤,但你看看 D:\C#學習\應用程序配置練習 這個文件夾,似乎什么都沒有發生變化呀!

沒有出現exe文件呀,事實,編譯出來的文件出現在 D:\Program Files\Microsoft Visual Studio 9.0\VC    這個文件夾中,為什么呢?

看看上面的圖,因為當前路徑就是在這個文件夾呀,所以在編譯之前,還得做一個工作,使用chdir 命令將當前路徑 轉換到C#源程序所在路徑下。如下圖所示:

 

使用out選項,使用out選項能夠指定程序的輸出路徑及文件名,如以下命令:

csc /target:exe /out:"C:\Documents and Settings\Administrator\桌面\PsTools\a.exe" "E:\study\C#學習\CsharpP253.cs"

編譯的是紅色文字代表的C#源代碼文件,生成到什么那個路徑之下,文件名是什么,就是青色文字所示。

注意,如果路徑中有空格,一定要使用雙引號將其括起來,否則將出來錯誤!事實上,將所有的路徑都雙引號括起來就沒有行了。


查詢本機上安裝的.NET平台,在沒有VS IDE的情況下編譯程序

有時候,本機上可能安裝了多個版本的.NET或多個版本的VS 20XX,或有些版本安裝了.NET但沒有安裝對應的VS IDE,至於本機安裝的是十么一個情況,可能自己都不記得了,在這種情況下,可以通過 注意表查詢命令 REG QUERY 來獲得相關信息,具體的做法是在CMD窗口串輸入以下命令:

REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework",這項命令的意思是查詢注冊表中關於 .NET的相關信息,你可以看到類似以上的輸出:


通過上圖,我們可以看出,本機上所有的.NET版本,在這些版本對應的文件夾中,一般都有對應的及csc.exe這個程序,這就是我們平時用來進行程序編譯的程序,如對於上圖,在文件夾C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319 就可以找到 csc.exe這個程序,所以不安裝VS IDE,只安裝.NET平台,也是可以編譯程序的,

只不過是在cmd窗口中切換當前路徑到csc.exe這個程序所在的路徑,再輸入編譯命令即可!


但以上這樣做會導致一個問題,即程序生成的exe.dll 等文件,並不在 C# 源代碼文件所在的文件夾下,因為你當前的路徑不是C#源代碼所在的路徑呀!如果要想生成的exe ,dll在C#源文件夾下,則必須在/out:中輸入完整的路徑名,很麻煩。

要解決這個問題,可以先使用path語句,即在cmd窗口中先輸入:

path = C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319

(當然上面的路徑就是 csc程序所在的路徑)

再輸入csc即可

同時編譯多個C#文件怎樣做。

方法很簡單,只需要把需要編譯的C#文件按順序排列就是了,注意,是按順序排列呢?舉個例子,如果at.cs文件引用了 gl.cs中的類,那么排列的先后順序應該是先gl.cs,接着at.cs,如果是一個示例:

csc @bill_arcEngine_csc.rsp /out:"自已寫程序驗證arcGisLicense.exe" /t:exe  "cshape2.cs" "使用程序初始化ArcGis_License.cs"

 

如何引用編譯時添加多個引用,這個當前沒有找到更好的辦法,一個解決方法是使用多個/r選項,中間用空格隔開,如下面是一個示例:

csc/r:"C:\WINDOWS\assembly\GAC_MSIL\ESRI.ArcGIS.System\9.3.0.1770__8fc3cc631e44ad86\ESRI.ArcGIS.System.dll" /r:"C:\WINDOWS\assembly\GAC_MSIL\ESRI.ArcGIS.Display\9.3.0.1770__8fc3cc631e44ad86\ESRI.ArcGIS.Display.dll" /out:"自已寫程序驗證arcGisLicense.exe" /t:exe "使用程序初始化ArcGis_License.cs"

出處:http://hi.baidu.com/billschen/item/7bd8203d6779dfbd134b1411


免責聲明!

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



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