02.生成、打包、部署和管理应用程序及类型

    使用csc.exe,通过命令行来编译源代码,生成IL代码,如下
    csc.exe /out:Program.exe /t:exe /r:MSCoreLib.dll Program.cs
    意义:指示C#编译器生成一个名叫Program.exe的可执行文件
 
    MSCoreLib.dll是一个特殊的文件,它包含所有的核心类型:Byte,Char,String,Int32等等,因为操作非常频繁,C#编译器会自动引用该程序集,所以上述的命令行代码可以省略/r开关,也可以使用/nostdlib开关,不去引用该程序集
 
    响应文件:
        类似于配置文件一样,可以统一设置命令行中的各项开关
 
    元数据概述
        元数据是一个二进制数据块,由几个表构成,为三个类型:定义表,引用表,清单表
        常用定义表:
            ModuleDef:标识模块的记录项
            TypeDef:标识类型的记录项
            MethodDef:模块中各个方法的记录项
            FiledDef:模块中每个字段的记录项
            ParamDef:模块中每个方法中参数的记录项            
            PropertyDef:模块中每个属性的记录项
            EventDef:模块中每个事件的记录项
        常用引用表:
            AssemblyRef:模块引用每个程序集的记录项
            ModuleRef:当前模块引用的类型可能是由别的PE模块实现,所有那些模块在这个表中都有一个对应的记录项
            TypeRef:模块引用的每个类型在这个表中的记录项
            MemberRef:模块引用的成员(字段、方法、属性、事件)
 
    程序集是一个或多个类型定义文件及资源文件的集合,是进行重用、版本控制和应用安全性设置的一个基本单元,它允许将类型和资源文件划分到单独的文件中。
 
    生成一个PE文件程序集时,会在PE文件中嵌入一个标准的Win32版本资源,在应用程序中可以使用System.Diagnostics.FileVersionInfo的static方法GetVersionInfo来获取并检查这些信息
    
    语言文化
    标记了一种具体的语言文化的程序集称为附属程序集
原文地址:https://www.cnblogs.com/a2htray/p/4502054.html