c# - 使用 C# 编译的可执行文件有什么?

标签 c# visual-studio clr managed

据我了解,

  1. 任何使用 C# 或 F# 或 VB.Net 编写的代码都由各自的编译器在 Visual Studio 中编译为 IL 代码。

  2. 因此,安装在客户端机器上的 .NET 框架运行时 (CLR) 将使用此 IL 代码转换为机器代码并运行程序。

问题是,这个 EXE 包含什么? IL 和一些 header ?

最佳答案

在 .NET 世界中,这些基本部署单元称为 Assemblies ,在应用程序的情况下具有 .exe 扩展名,在这种情况下具有 .dll 扩展名 图书馆。

简而言之,一个程序集包含四种类型的东西:

  1. An assembly manifest 向 .NET 运行时提供信息,例如程序集的名称、版本、 请求的权限,以及它引用的其他程序集。
  2. An application manifest 向操作系统提供信息,例如程序集应该如何 部署以及是否需要提升管理权限。
  3. Compiled types :已编译的 IL 代码和程序集中定义的类型的元数据。
  4. Resources :程序集中嵌入的其他数据,例如图像和可本地化的文本。

以上四个中,只有程序集 list 是必需的。

关于c# - 使用 C# 编译的可执行文件有什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32196176/

相关文章:

c# - 在 Silverlight 中检测 CapsLock 是打开还是关闭

c++ - 使用 Windows 7 在 VS 中取消引用 null

vb.net - 如何在 16 位二进制、32 位二进制和 64 位二进制中写入整数值 "60"

visual-studio - cmath.h 和编译错误

c# - 在 std::function 中包装委托(delegate)?

c# - .NET 和 P2P - 编写 P2P 信使

c# - 上传文件到服务器抛出内存不足异常

c# - asp.net 中 Convert.ToDateTime 的问题

.net - 如何通过名称获取 AppDomain?

c# - IL 和参数