日期:2013-12-23  浏览次数:20373 次

刚在写程序的时候碰到了一个问题,原本只是想把所有.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\;