• 元数据描述


    .NET Framework 部署目标

      DLL hell     安装一个程序,破坏了另一个程序
      安装的复杂性   设计的东西太多
      涉及安全性      自动下载

    将类型生成到模块中

    使用csc.exe 进行编译
      /out: 生成可执行文件
      /t:exe 生成的文件是Win32控制台应用程序类型
      /r: 应用库
      /nostdlib 不自动应用MSCorLib.dll程序集
    响应文件,一组命令的集合使用@指令引用文件,就是为了简便上面的操作
      C#编译器支持多个响应文件,在.NET Framework 安装时会安装一个CSC.rsp文件,
        >然后编译器会汇总本地的和全局的响应文件,有冲突,以本地为主

    元数据的概述

      现在知道创建的是什么类型的PE文件
        托管的PE文件由4个部分组成

          PE32(+)  标准可执行文件头

          CLR头          

                >major and minor 主次版本号,
                >flag
                >MethodDef token(模块的入口方法)
                >元数据表的大小和编译,可以查看CorHdr.h头文件

          元数据         

              >定义表
                >ModuleDef 总是包含对模块进行标识的一个记录项
                >TypeDef 模块定义的每个类型在这个表中都有一个记录项
                >MethodDef 模块定义的每个方法在这个表中都有一个记录项
                >FieldDef 模块定义的每个字段在这个表中都有一个记录项
                >ParamDef 模块定义的每个参数在这个表中都有一个记录项
                >PropertyDef 模块定义的每个属性在这个表中都有一个记录项
                >EventDef 模块定义的每个事件在这个表中都有一个记录项
              >引用表
                >AssemblyRef
                >ModuleRef 实现该模块所引用的类型的每个PE模块在这个表中都有一个记录项
                >TypeRef 该模块的每个类型在这个表中都有一个记录项,包含类型的名称和一个引用
                >MemberRef 模块引用的每个成员在这个表中都有一个记录项
              >清单表

          IL   可使用ILDasm查看

    将模块合并成程序集

      程序集:是一个或多个类型定义文件以及资源文件的集合
        >程序集是进行重用,版本控制和应用安全性设置的基本单位
      清单元数据表(manifest)
        >AssemblyDef 程序集
        >FileDef 作为程序集一部分的每个PE文件和资源文件在这个表都有一个记录项
        >MainfestResourceDef
        >ExportedTypesDef

            

    Hold on, everything is possible.
  • 相关阅读:
    CMD指令
    六种Socket I/O模型幽默讲解
    性格与职业的选择
    为什么主引导记录的内存地址是0x7C00?
    pandas数据分析第二天
    pandas数据结构和介绍第一天
    tornado options
    tornado.web.StaticFileHandler
    mysql多条更新
    pandas
  • 原文地址:https://www.cnblogs.com/student-note/p/6178370.html
Copyright © 2020-2023  润新知