zoukankan      html  css  js  c++  java
  • CLR读书笔记第二章 生成,打包,部署和管理应用程序及类型

    2.1 .NET Framework部署目标

      1. 口碑不佳的原因:

        @1 所有的应用程序都来自各个厂商动态链接库DLL,

        @2 安装复杂;

            @3 安全性;

      2. .NET Framework正在尝试传递解决 DLL hell问题

    2.2 将类型生成大模块中

      1. 如何将多个类型的源代码文件生成为一个可以部署的文件

      2. 响应文件: 是一个文本文件,包涵一组编译器命令行开关;

    2.3 元数据概述

      一个托管PE文件由4部分组成: PE32(+)头,CLR头,元数据,IL;

          1. PE32(+)头是windows要求的标准信息;

      2.CLR头: 是那些需要CLR的模块特有的;

      3. 元数据: 是一个二进制数据块,由几个表组成: 定义表,引用表,清单表.

        (1)常用的定义表 definition table

        @1 ModuleDef: 总是包涵一个标识模块的记录项;

        @2 TypeDef:模块中定义的每个类型都在这个表中有一个记录项;

        @3 MethodDef: 模块中定义的每个方法都在这个表中有一个记录项;

        @4 FieldDef: 模块中定义的每个字段都在这个表中有一个记录项;

        @5 ParamDef: 模块中定义的每个参数都在这个表中有一个记录项;

        @6 PropertyDef: 模块中定义的每个属性都在这个表中有一个记录项;

        @7 EventDef: 模块中定义的每个事件都在这个表中有一个记录项;

         (2) 常用的引用表:

        @1 AssemblyRef: 模块中引用的每个程序集在这个表中都有一个对应的记录项;

        @2 ModuleRef: 引用的模块在这个表中都有一个记录项;

        @3 TypeRef: 模块引用的每个类型在这个表中都有一个记录项;

        @4 MemberRef: 模块中引用的每个成员都在这个表中有一个记录项;

        (3) 清单元数据表: AssemblyDef,FileDef,ManifestResourceDef,ExportedTypeDef;

    2.4 将模块合并成程序集

      1. CLR总是首先加载包涵"清单"元数据表的文件.再根据这个清单来获取程序集中的其他文件名称;

      2. 程序集使可重用类型的逻辑表示和物理表示能够区分开.

      3. 使用多文件程序集的理由;

        @1 可用单独的文件对类型进行划分;

        @2 可在自己的程序集中添加资源或数据文件;

        @3 程序集中包涵的各个类型可以使用不同的语言来实现;

      4. C#生成程序集的开关:   /t[arget]:exe   ;  /t[arget]:winexe   ; /t[arget]:library; t[atget]:module--生成不含清单的元数据表的PE文件;

      5. 使用 AL.exe创建程序集

    2.5 程序集版本资源信息

      1. 可以使用定制的Attribute来设置版本资源字段 VS会自动创建一个AssemblyInfo.cs文件

      2. 版本号: 2.5.719.2  主版本号.次版本号.内部版本号.修订号;

        @1 AssemblyFileVersion 仅供参考;

        @2 AssemblyInfomationalVersion 仅供参考;

        @3 AssemblyVersion 非常重要.唯一的标示了一个程序集;

    2.6 语言文化

       1. 语言文化也是程序集标识的一部分

        2. 附属程序集(satellite assembly): 标记了一种具体语言文化的程序集;

            使用AL.exe生成附属程序集,使用开关/c[ulture]:text来指定一种语言,text是语言字符串

     2.7 简单应用程序部署

      1. 私有部署: 部署到和应用程序相同的目录中的程序集;

     2.8 简单管理控制

  • 相关阅读:
    php checkbox 复选框
    wp7 The remote connection to the device has been lost
    php json_decode null
    今入住博客园,希望笑傲职场!
    单例模式之见解设计模式
    简单工厂之见解设计模式
    infopath 序列化 在发布处有导出源文件.存放一地方后有myschema.xsd 文件
    超简单的天气预报webpart
    用户控件传值
    Proxy代理
  • 原文地址:https://www.cnblogs.com/ry123/p/2786464.html
Copyright © 2011-2022 走看看