我有.cs文件,有我的代码。我编译了它,我得到了一个.dll文件。 我可以打开我的.dll文件并查看我的c#代码,因为我想再次编译它吗?
答案 0 :(得分:2)
当然,如果使用强密钥签署初始程序集,如果不使用私钥,则无法使用相同的密钥对其进行签名。
有一些工具,例如ILSpy(免费)和.NET Reflector(商业),允许您将托管程序集反汇编回某些托管语言(C#,VB.NET,...) 。当然,在这个过程中,你不能期望获得最初用于编译程序集的完全相同的源代码,特别是如果它是在发布模式下编译并且启用了优化,因为局部变量名称和注释之类的东西根本不属于结果组装。
答案 1 :(得分:1)
使用Reflector.Net
查看您的代码,您可以使用它来反汇编您的DLL。或者,如果您有原始cs文件,则可以使用C#编译器重建。
答案 2 :(得分:0)
您可以使用反汇编程序,例如Reflector(或许多alternatives中的一个)将CIL反汇编回C#。
如果你自己编译了DLL,不确定为什么需要它 - 肯定你有源代码?
答案 3 :(得分:0)
因为您正在使用.NET,是的。 .NET程序集实际上设计为易于反编译,因此反射更容易,更快。
您只需要像.NET Reflector这样的反编译工具来进行反编译。 Reflector现在是零售产品,但有几种免费软件替代品;我使用CodeReflect。
但是,虽然这样的工具会向您显示与原始代码接近的内容,但首先它不会是准确的(有条件编译的代码不会出现,某些调用和构造可以优化,或者看看同样在IL中作为略有不同的构造),其次,它不允许你改变任何东西。如果您有.cs文件和Visual Studio(或MSBuild; VS使用的命令行工具)的副本,则可以将源文件重新编译为DLL。