讀書筆記三 2 1 把類編譯成託管模組

2022-04-30 13:30:12 字數 4048 閱讀 7075

把類編譯成託管模組

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.心智 乙個人的 心智 指的是他各項思維能力的...

《把時間當作朋友》讀書筆記

前言 所有人的困境 常發現在工作學習中,有人問起,這個單詞什麼意思?這個函式怎麼用的?但事實上,象這類問題都可以在網上,在字典中很方便地查到,但為什麼還要有人問呢,可以說 所有學生提問都是源自於所有人的共有的弱點 懶惰。甚至會問一些很弱智的問題,而這些很可能是他以前懶惰,沒有好好學習到,造成現在不知...

讀書筆記 把時間當做朋友

之前只是挑選幾章看了下,端午節有三天假期,足夠看完這本書了。對於 心智 這個詞,我覺得還是蠻深奧難懂的,很難簡單的解釋,少有人走的路 中講的是心智成熟的旅程,把時間當做朋友 這本書的副標題也是與心智相關的,如果簡單的理解,我覺得意思可能是時間其實不會因為你管理而比別人多,要想高效的利用好時間重要的應...