把類編譯成託管模組
1.如何將編寫好的類(源**)編譯成
clr可以執行的程式集呢,第乙個步驟就是要把這些類編譯成託管模組;①在
editplus
中編寫源**;
public class hicsharp}②
把這類編譯成模組,可以用
csc.exe
命令開關
csc.exe
在%systemroot%\microsoft.net\framework\v.x.x.x(
版本號)
裡面;一般安裝
vs的時候都會在環境變數裡面去設定;所以在命令提示符下可以直接用這個程式;
編譯語法:
csc.exe /out:csharp.exe /:t exe /r:mocorlib.dllhicsharp.cs;
檢視同乙個目錄裡面則會生出
csharp.exe
乙個pe檔案;
/out
命令列開關表示要輸出的程式集名稱
;/t (type)
程式集的型別
(exe
型別的)
;/r (reference)
引用的程式集
;mscorlib.dll
是乙個特殊的檔案他包含了
int byte
等一些基本型別的定義;因為此型別呼叫的是非常頻繁;所以如果省略
/r:mscorlib.dll
編譯器會自動把
這個命令開關 加上;也就是說
這個命令開關時預設的,不需要特殊指定。同樣
/out /t
也是有預設的選項
.對於命令列程式預設的就是
exe;
可以直接用下面的命令簡化
:cschicsharp.cs
還可以生成
dll
檔案具體語法是:
csc.exe /out:hicharp.dll /t:library /r:mscorlib.dll hicsharp.cs
這個語法可以簡化成
csc /t:library hicsharp.cs
最終在目錄裡面會生成乙個
hicsharp.dll
的檔案;
注意到預設情況下會生成
exe
可執行程式
通過/t
開關我們可以生成
dll
檔案,我們可以把這個檔案用
/t:winexe
開關,試著生成一下:用
/t:winexe
不能執行;當然了因為他並沒有
winform
類似的入口程式;它只是乙個命令列程式。
③響應檔案
(response file)
響應檔案時乙個由
rsp
為字尾名的檔案,在這個檔案中我們可以把命令列開關寫到這個檔案裡面,比如要在很多地方用到
/t:library
這個命令開關
我們可以把它寫到乙個檔案裡面
在命令提示符下用
@指定這個檔案則每次生成只需要呼叫這個檔案就可以了;
例如:hicsharp.rsp
;源**是:
/out:hicsharp.dll
/t:library
/r:mscorlib.dll
我用命令提示符編譯
csc @hicsharp.rsp hicsharp.cs
這樣的話與之前我們編譯的
dll
是有同樣的功能,但是如果我們寫到乙個檔案裡面;我麼可以重複呼叫;就不用每次都要寫上
/t:library 了因為
library
不是預設的。
有個注意的問題是在我們編譯
hicsharp.cs
的時候編譯器會自動查詢兩個
csc.rsp
檔案;第乙個查詢的位置是和在當前目錄中查詢
csc.rsp
;另外乙個目錄則是
csc.exe
的目錄裡面查詢
csc.rsp
微軟為我們提供乙個預設的
csc。
rsp一般目錄位於
%systemrott% microsoft.net\framework\vx.x.x
裡面# this file contains command-line options that the c#
# command line compiler (csc) will process as part
# of every compilation, unless the "/noconfig" option
# is specified.
# reference the common framework libraries
/r:accessibility.dll
/r:microsoft.csharp.dll
/r:system.configuration.dll
/r:system.configuration.install.dll
/r:system.core.dll
/r:system.data.dll
/r:system.data.datasetextensions.dll
/r:system.data.linq.dll
/r:system.data.oracleclient.dll
/r:system.deployment.dll
/r:system.design.dll
/r:system.directoryservices.dll
/r:system.dll
/r:system.drawing.design.dll
/r:system.drawing.dll
/r:system.enterpriseservices.dll
/r:system.management.dll
/r:system.messaging.dll
/r:system.runtime.remoting.dll
/r:system.runtime.serialization.dll
/r:system.runtime.serialization.formatters.soap.dll
/r:system.security.dll
/r:system.servicemodel.dll
/r:system.servicemodel.web.dll
/r:system.serviceprocess.dll
/r:system.transactions.dll
/r:system.web.dll
/r:system.web.extensions.design.dll
/r:system.web.extensions.dll
/r:system.web.mobile.dll
/r:system.web.regularexpressions.dll
/r:system.web.services.dll
/r:system.windows.forms.dll
/r:system.workflow.activities.dll
/r:system.workflow.componentmodel.dll
/r:system.workflow.runtime.dll
/r:system.xml.dll
/r:system.xml.linq.dll
我們可以利用
/noconfig
命令列開關
忽略區域性和全域性的
csc.rsp (
我試了一下
還是可以編譯,求解
),還有就是
/noconfig
不能再響應檔案裡面寫入,必須在命令提示符裡面寫;
繼續努力吧,今天就寫到這好累,堅持寫讀書筆記;
--------
如果不認真讀書,就是對作者的侮辱。
我不能侮辱
jeff
老師和周靖老師。努力。
《把時間當作朋友》讀書筆記
終於把 把時間當作朋友 這本書看完了,這本書是我在手機上看書一來讀的最慢的一本書,因為書中很多觀點我比較贊同,也不能像讀 時的那樣匆匆忙忙的讀完。有些地方需要多次閱讀,仔細品味和思考。好吧,我現在把讀此書印象比較深刻的觀點記錄下來,以便以後自己回顧吧!1.心智 乙個人的 心智 指的是他各項思維能力的...
《把時間當作朋友》讀書筆記
前言 所有人的困境 常發現在工作學習中,有人問起,這個單詞什麼意思?這個函式怎麼用的?但事實上,象這類問題都可以在網上,在字典中很方便地查到,但為什麼還要有人問呢,可以說 所有學生提問都是源自於所有人的共有的弱點 懶惰。甚至會問一些很弱智的問題,而這些很可能是他以前懶惰,沒有好好學習到,造成現在不知...
讀書筆記 把時間當做朋友
之前只是挑選幾章看了下,端午節有三天假期,足夠看完這本書了。對於 心智 這個詞,我覺得還是蠻深奧難懂的,很難簡單的解釋,少有人走的路 中講的是心智成熟的旅程,把時間當做朋友 這本書的副標題也是與心智相關的,如果簡單的理解,我覺得意思可能是時間其實不會因為你管理而比別人多,要想高效的利用好時間重要的應...