几年前,我为客户端编写了一个c#应用程序,但现在我已经没有源代码了。我所拥有的只是在客户端PC上部署的EXE。是否有一种方法可以从EXE生成c#源代码?
当前回答
你需要反射器。
其他回答
反射器和它的插件FileDisassembler。
反射器将允许查看源代码。FileDisassembler将允许您将其转换为VS解决方案。
你需要反射器。
Denis Bauer的Reflector和File Disassembler插件。它实际上从程序集生成源项目,其中Reflector本身只显示被分解的源。
我最近最喜欢的是JetBrains的dotPeek。
我很惊讶居然没人提到微软的“伊达姆”。它可能不像ILSpy或Reflector那样漂亮,但它随Visual Studio一起提供,因此许多开发人员已经拥有它。
要运行它(假设VS 2013,其他版本应该类似):
选择“开始>所有程序> Visual Studio 2013 > Visual Studio Tools”。 双击VS2013的开发人员命令提示符。 在生成的命令提示符中运行"ildasm"。 在工具中,选择文件>打开并打开可执行文件或DLL。
现在可以导航DLL结构了。双击类成员查看IL。使用File > Dump将IL导出到一个文件。
Reflector在一般情况下不再是免费的,但他们确实向开源开发人员免费提供了它:http://reflectorblog.red-gate.com/2013/07/open-source/
但DevExtras和JetBrains等公司已经创建了免费的替代方案:
DevExtras CodeReflect
JetBrains DotPeek
推荐文章
- 如何在c#中获得正确的时间戳
- Linq选择列表中存在的对象(A,B,C)
- c# .NET中的App.config是什么?如何使用它?
- c#:如何获得一个字符串的第一个字符?
- String类中的什么方法只返回前N个字符?
- 我如何提高ASP。NET MVC应用程序性能?
- 更好的方法将对象转换为int类型
- 我可以将c#字符串值转换为转义字符串文字吗?
- 在c#中转换char到int
- c#中朋友的对等物是什么?
- 关键字使用virtual+override vs. new
- 无法解析类型为“Microsoft.AspNetCore.Http.IHttpContextAccessor”的服务
- 在ASP中选择Tag Helper。NET Core MVC
- 如何在没有任何错误或警告的情况下找到构建失败的原因
- 跨线程操作无效:控件“textBox1”从创建它的线程以外的线程访问