Visual Studio,不只是用來拖拖控制項

來源:互聯網
上載者:User

一會用IDE,一會不用IDE,我可真煩人......

And,繼續標題黨下去吧...... 我對拖控制項這種標題黨方式很有愛。

 

言歸正傳,搞過一回命令列編譯C#,這回咱們回來玩玩IDE,這一篇主要向大家講一下VS項目的可定製能力,它並非是微軟創造出來的一個專門給.net和Win32編程新手用的玩物,而是一個真正非常優秀的可擴充的IDE產品。你可以用它來管理項目和項目依賴關係,可以跟源碼管理工具整合,編譯執行也不限於微軟內建的集中開發語言,你甚至可以用它來開發Java。

這篇文章將會通過一個簡單例子,來示範如何用VS來編譯ilasm,這個應該也還是有些實際用處的,也方便喜歡研究ilasm的朋友。

首先第一步,我們建立一個C++空項目(沒錯,是C++空項目,對VS而言,VC++是一種自訂項目,它最接近我們的需求)。

接下來我們右鍵點這個建立的項目,選擇“工具產生順序”,然後把那一堆C++工具全都選掉,只留下自訂產生工具就行了。

好 這樣我們的項目就編譯不了C++了。

 

接下來是重點,重新在VS中開啟專案檔,然後右鍵點擊“自訂建置規則”

然後我們建立一個規則檔案,用來編譯il檔案。

建立一個規則檔案之後建立規則,到這都很容易,就不用細說了。

建立規則稍微有些複雜了,首先我們來參考一下ILASM的文檔:http://msdn.microsoft.com/zh-cn/library/496e4ekx(VS.80).aspx

 

我這裡只是為了示範,沒有把太多的ilasm編譯選項做成屬性

 

 

填好後一路確定就行了。可以在項目中改變自訂屬性來切換exe和dll:

 

附上MSIL的helloworld以供大家驗證:

代碼

// HelloWorld.il
// This is our first IL program!

.assembly extern mscorlib {
}

.assembly HelloWorld {
  .ver 1:0:1:0
}
 
.module HelloWorld.exe

.method privatescope static void Main() cil managed {
  .maxstack 1
  .entrypoint
  
  ldstr  "Hello World"
  call  void [mscorlib]System.Console::WriteLine(string)
  ret
}

 

附上整個項目壓縮包:

/Files/winter-cn/ilasm.rar

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.