【问题标题】:What does an executable compiled using C# have?使用 C# 编译的可执行文件有什么?
【发布时间】:2015-08-25 05:30:55
【问题描述】:

据我所知,

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

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

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

【问题讨论】:

标签: c# visual-studio clr managed


【解决方案1】:

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

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

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

在上述四个中,只有程序集清单是强制性的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 2016-01-19
    • 1970-01-01
    • 2010-11-16
    • 2016-01-15
    • 2014-08-30
    相关资源
    最近更新 更多