一、以windows服务和winform项目为例,此处用的是winform,发布后的程序都会生成.exe文件,如果有其它关联的程序集,会打包成.dll的动态库文件,一般打包后exe和dll都会带.pdb文件,项目中添加引用的第三方库没有.pdb文件;

.net反编译 项目文件 .net反编译教程_反编译

 

 

二、使用反编译工具(这里使用的是dnSpy),打开.exe和.dll的文件,可以看到库中的类和引用;

.net反编译 项目文件 .net反编译教程_程序集_02

 

三、点击文件--导出到工程可导入到一个文件夹中,并且会有.sln文件(注意:导的时候把所需文件一块导出);

.net反编译 项目文件 .net反编译教程_反编译工具_03

 

 

四、可以直接使用Visual Studio打开项目,因为反编译并不能尽善尽美,有可能会有反编译后的类中有错误的情况,需要自己修改错误和添加第三方库(第三方库打包后的程序中都有,错误多可以尝试使用其它反编译工具,结合不同工具看反编译后的代码的差异);

 

五、也可以自己创建项目,然后自己创建相应的程序集和文件夹,把反编译后的类和页面都复制到项目中使用,我就是用的这种方法,自己创建程序集和文件夹,整合并修改完错误可以运行,因为总感觉使用反编译工具的程序有不完善的地方,没有自己创建的项目实在;

 

dnSpy反编译工具下载:

链接:https://pan.baidu.com/s/1xyWbFVOgHy1wDjqudBj3Nw 
提取码:hz6f

 

备注:windows服务和winform项目反编译是一样的;asp.net程序发布后程序集只会打包成dll文件,页面文件可以直接使用,如果需要反编译为可以运行的程序,需要自己创建项目把反编译的类和页面整合起来。