我创建了一个简单的应用程序,我在书中读到C#或任何.net程序转换为汇编文件包含汇编代码,但我想知道在哪里找到该汇编文件。
答案 0 :(得分:4)
所有C#程序(更常见的是,任何.NET语言)都转换为.NET“程序集”,它是包含中间字节码的.exe或.dll - CIL。当您通过JIT compiler即时运行程序时,该字节码将编译为机器语言。
默认情况下,Visual Studio会将.NET程序集放在项目的/bin
文件夹中,然后将所选配置放在该文件夹下。 (默认情况下只存在2个,/bin/Debug
和/bin/Release
)您可以在项目属性中更改此项。
.NET程序集中没有汇编代码,但您可以使用ildasm.exe或Mono.Cecil等工具查看CIL字节码。
JIT编译器的优点是能够检测系统的当前硬件配置并根据CPU的功能应用优化。查看JIT生成的东西没有任何意义,因为计算机之间会有所不同。
答案 1 :(得分:3)
你需要注意术语。
.NET二进制文件称为“程序集”,它们不包含汇编代码(假设汇编代码表示实际的机器指令)。相反,它包含CIL,它看起来类似于汇编语言,适用于古怪的CPU。在执行之前,CIL是即时编译为本机程序集的平台,然后运行。
如果您正在构建调试版本,bin/Debug
就是您的程序集所在的位置。要发布它在bin/Release
请注意,这些目录与Visual Studio项目位置相关。
答案 2 :(得分:0)
You can create two types of ASP.NET Assemblies in ASP.NET: private ASP.NET Assemblies and shared assemblies. Private ASP.NET Assemblies are created whey you build component files like DLLs that can be applied to one application. Shared ASP.NET Assemblies are created when you want to share the component files across multiple applications. Shared ASP.NET Assemblies must have a unique name and must be placed in Global Assembly Cache (GAC). The GAC is located in the Assembly directory in WinNT. You can view both the manifest and the IL using ILDisassembler (ildasm.exe).
参考:http://www.dotnet-guide.com/assemblies.html