[我的ASP.net學習曆程]有關於.dll檔案的迷惑
來源:互聯網
上載者:User
asp.net 剛在寫程式的時候碰到了一個問題,原本只是想把所有.cs檔案編譯成.dll的。(因為從開發以來,都沒嘗試過所它編譯,只是知道有這樣的一回事。可能是公司沒做要求吧!)(說白了,人懶!^o^)。
好了,話回正題,一開始還真的不知道怎麼個編譯法,只知道csc這個命令。呵!當在開始->動行->cmd裡打上個csc /?的時候,系統卻提示什麼什麼錯誤!這就怪事了!於是再找,搜尋C盤:csc.exe,終於找到了!^o^呵!OK,現在可以編譯了!
csc /target:library *.cs
OK,都已經編譯了!高興中ing.................
於是再試試把所有.cs檔案都delete了看看可不可以運行!
哦!還真的可以!依然在高興中ing.................
又突發奇想,看看把剛編譯的.dll檔案名稱改一改,系統會出現什麼樣的錯誤。
??問題來了!程式運行依然正常!迷惑中ing..........
這讓我想到了是不是IIS。於是重啟一下它。再運行程式。
??怪事,還是可以正常運行!
那再把程式全部轉到另一個目錄下去看看!
哈哈!終於出錯了!但看一下錯誤!有點暈頭了!錯誤資訊是這句:
<authentication mode="Windows" />
嗯!那把它改成:<authentication mode="None" />試試!
還是出錯!靜下想想!..............................
突然明白!原來沒設虛擬目錄!(自己也狂倒!)
OK,虛擬目錄設完成,看看可以運行不!
??怪事依然!程式運行依然正常!
迷惑中,乾脆把剛編譯的.dll檔案刪了看看!
??怪事還是一樣!程式還是運行很正常!
這到倒是什麼回事?難不成是系統讀的是產生後的臨時dll?OK,那去把.net framework下的所以臨時files都delete了看看!進入:D:\WINNT\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files刪了所有。再運行程式看看!^o^想和應該沒問題了吧!
??昏死!程式依然正常運行!
正在迷惑當中,突然想到了VS.net這個東西!於是立馬到bin目錄裡找到在VS.net編譯的那個.dll檔案!好,刪了它看看!再運行!
OK!它終於出錯了!
這下才明白過來!原來VS.net在程式調試運編譯的時候,它已經把所有的背景程式全封裝了!(大家千萬別倒下去!^o^)
再試看看此檔案封裝了什麼!於是把所有除.aspx留下別的刪除運行!
OK!完全沒任何問題!高興ing..................
突然間,又來了個突發奇想!記得在java和C++中,反編譯工具很多!上google搜一搜C#的反編譯。哇塞!找來了一個蠻不錯的工具.NET Reflector(老外寫的)。下載地址:http://www.aisto.com/roeder/dotnet
玩下此工具!真的蠻牛的!除了可以把入口方法、函數、變數等讀出外,還可以把原始碼反編譯過來!
這裡打住了!哇靠一聲!再去找下加殼工具看看!^o^
========================
最後附:
要在cmd裡把csc命令自動載入,可以在系統硬碟根目錄下的Autoexec.bat檔案裡加入這句:
@echo off
path=d:\WINNT\Microsoft.NET\Framework\v1.1.4322\;