zoukankan      html  css  js  c++  java
  • 元数据描述

    .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.
  • 相关阅读:
    从 PHP 到 Java
    用Lua定制Redis命令
    见招拆招-PostgreSQL中文全文索引效率优化
    通过2-3-4树理解红黑树
    代码迁移之旅(二)- 渐进式迁移方案
    多线程编程
    Gotorch
    使用PostgreSQL进行中文全文检索
    代码重构之旅(一) 项目结构
    Linux“体检”指标
  • 原文地址:https://www.cnblogs.com/student-note/p/6178370.html
Copyright © 2011-2022 走看看