• ClrFromCSharp_2_2_生成部署打包应用程序


    1,在 epsCSharpFromCSarpCSharpFromCSarp_2_2,建立新解决方案和解决项目

    并且输入以下代码

    namespace ClrFromCSharp_2_2
    {
        class Program
        {
            static void Main(string[] args)
            {
                System.Console.WriteLine("hi");
            }
        }
    }
    

    2,然后,在工具-命令行-Powshell,打开Powshell并且输入指令

    PS C:
    epsClrFromCSharpClrFromCSharp_2_2> csc.exe Program.cs
    Microsoft(R) Visual C# 编译器 版本 3.4.1-beta4-19610-02 (c4e5d138)
    版权所有(C) Microsoft Corporation。保留所有权利。

    3,响应文件,响应文件就是包含了/r:…/t…类似的文件。以rsp结尾。默认的文件安装位置为:

    C:WindowsMicrosoft.NETFrameworkv4.0.30319

    # This file contains command-line options that the C#
    # command line compiler (CSC) will process as part
    # of every compilation, unless the "/noconfig" option
    # is specified.
    
    # Reference the common Framework libraries
    /r:Accessibility.dll
    /r:Microsoft.CSharp.dll
    /r:System.Configuration.dll
    /r:System.Configuration.Install.dll
    /r:System.Core.dll
    /r:System.Data.dll
    /r:System.Data.DataSetExtensions.dll
    /r:System.Data.Linq.dll
    /r:System.Data.OracleClient.dll
    /r:System.Deployment.dll
    /r:System.Design.dll
    /r:System.DirectoryServices.dll
    /r:System.dll
    /r:System.Drawing.Design.dll
    /r:System.Drawing.dll
    /r:System.EnterpriseServices.dll
    /r:System.Management.dll
    /r:System.Messaging.dll
    /r:System.Runtime.Remoting.dll
    /r:System.Runtime.Serialization.dll
    /r:System.Runtime.Serialization.Formatters.Soap.dll
    /r:System.Security.dll
    /r:System.ServiceModel.dll
    /r:System.ServiceModel.Web.dll
    /r:System.ServiceProcess.dll
    /r:System.Transactions.dll
    /r:System.Web.dll
    /r:System.Web.Extensions.Design.dll
    /r:System.Web.Extensions.dll
    /r:System.Web.Mobile.dll
    /r:System.Web.RegularExpressions.dll
    /r:System.Web.Services.dll
    /r:System.Windows.Forms.Dll
    /r:System.Workflow.Activities.dll
    /r:System.Workflow.ComponentModel.dll
    /r:System.Workflow.Runtime.dll
    /r:System.Xml.dll
    /r:System.Xml.Linq.dll

    4,Program.exe文件里面到底有什么?

    托管的PE文件由4个部分组成

    1. PE头
    2. CLR头
    3. 元数据----由二进制表构成的数据定义块,常见的有:
    • 定义表
    ModuleDef 总是对模块进行标识的定义项:
    TypeDef 模块定义的每个类型在表中的记录项
    MethodDef 方法的记录项
    FieldDef 字段的定义项
    ParamDef 模块定义的参数的记录项
    PropertyDef 属性记录项
    EventDef 事件定义项
    • 引用表
    • AssemblyRef 模块引用的每个程序集的记项
      ModuleRef 模块引用的每个模块的记录项
      TypeRef 模块引用的每个类型的记录项
      MemberRef 模块引用的每个成员(字段,方法,属性,事件)
    • 清单表


    使用 ILDASM.EXE 反编译器来查看元数据表---在视图---显示---元数据。

    PS C:
    epsClrFromCSharpClrFromCSharp_2_2> ildasm.exe Program.exe
    
    TypeDef #1 (02000002)
    -------------------------------------------------------
    	TypDefName: ClrFromCSharp_2_2.Program  (02000002)
    	Flags     : [NotPublic] [AutoLayout] [Class] [AnsiClass] [BeforeFieldInit]  (00100000)
    	Extends   : 01000005 [TypeRef] System.Object
    	Method #1 (06000001) [ENTRYPOINT]
    	-------------------------------------------------------
    		MethodName: Main (06000001)
    		Flags     : [Private] [Static] [HideBySig] [ReuseSlot]  (00000091)
    		RVA       : 0x00002050
    		ImplFlags : [IL] [Managed]  (00000000)
    		CallCnvntn: [DEFAULT]
    		ReturnType: Void
    		1 Arguments
    			Argument #1:  SZArray String
    		1 Parameters
    			(1) ParamToken : (08000001) Name : args flags: [none] (00000000)
    
    	Method #2 (06000002)
    	-------------------------------------------------------
    		MethodName: .ctor (06000002)
    		Flags     : [Public] [HideBySig] [ReuseSlot] [SpecialName] [RTSpecialName] [.ctor]  (00001886)
    		RVA       : 0x0000205e
    		ImplFlags : [IL] [Managed]  (00000000)
    		CallCnvntn: [DEFAULT]
    		hasThis
    		ReturnType: Void
    		No arguments.
    

    程序集---一个或多个类型定义文件或者资源文件的集合。在程序集的所有文件中有一个文件容纳了 清单(MainFest)

    清单也是一个元数据表集合。CLR总是先加载清单文件,然后通过清单获取程序集中其他文件的名称

    • 程序集定义可重用的类型
    • 程序集有版本号标记
    • 程序集可以关联安全信息

    生成程序集-----以现有的PE文件作为清单的宿组,或者创建单独的PE文件,并且其中只包含清单。

    清单元数据表

    AssemblyDef

    如果模块标识的是程序集,则列出

    • 名称
    • 版本
    • 语言文化
    • Flag
    • 哈希算法
    • 公钥
    FileDef

    作为程序集一部分的每个PE文件和资源文件在这个表中都有一个记录项。

    每个记录项包含

    • 文件名,扩展名
    • 哈希值
    • Flags

    如果只是单独的文件,则无记录

    --------程序集必然包含一个主模块文件(后缀,.EXE,.DLL)

    ManifestResourceDef

    作为程序集一部分的每个资源在表中的记录项

    • 资源名称
    • Flags 如果程序集外可见,则public,否则为privatre
    • FileDef表的一个索引,指出资源在哪个文件中。
    • 如果资源是嵌入资源,则包含在PE文件中的偏移位置。
    ExportedTypesDef

    从程序集中所有模块导出的所有public类型在这个表中都有一个记录项

    • 类型名称
    • FileDef表的一个索引
    • TypeDef表的一个索引

    指定以下命令行开关,csc编译器将生成程序集:/t:exe,/t:winexe;/t:appcontainerexe;/t:library或/t:winmdobj

    另外,csc还支持 /t:module开关,这个开关只是编译器生成一个不包含清单的元数据表格的PE文件。这样生成的文件是一个.dll PE文件,CLR想要访问其中的任何类型,必须先将该类型添加到一个程序集中去。使用/t:module 开关,默认扩展是.netmodule

    可以使用/addmodule 将模块添加到程序集。

    5,将模块合并成程序集

    文件1:Ch02-3-FUT.cs

    using System;
    
    public sealed class AFrequentlyUsedType {
       public AFrequentlyUsedType() {
          Console.WriteLine("A frequently used type was constructed.");
       }
    }

    文件2:Ch02-3-RUT.cs

    using System;
    
    public sealed class ARarelyUsedType {
       public ARarelyUsedType() {
          Console.WriteLine("A rarely used type was constructed.");
       }
    }

    文件3:Ch02-3-AssemblyVersionInfo.cs//程序集版本信息

    using System.Reflection;
    
    // FileDescription version information:
    [assembly: AssemblyTitle("JeffTypes.dll")]
    
    // Comments version information:
    [assembly: AssemblyDescription("This assembly contains Jeff's types")]
    
    // CompanyName version information:
    [assembly: AssemblyCompany("Wintellect")]
    
    // ProductName version information:
    [assembly: AssemblyProduct("Wintellect (R) Jeff's Type Library")]
    
    // LegalCopyright version information:
    [assembly: AssemblyCopyright("Copyright (c) Wintellect 2010")]
    
    // LegalTrademarks version information:
    [assembly:AssemblyTrademark("JeffTypes is a registered trademark of Wintellect")]
    
    // AssemblyVersion version information:
    [assembly: AssemblyVersion("3.0.0.0")]
    
    // FILEVERSION/FileVersion version information:
    [assembly: AssemblyFileVersion("1.0.0.0")]
    
    // PRODUCTVERSION/ProductVersion version information:
    [assembly: AssemblyInformationalVersion("2.0.0.0")]
    
    // Set the Language field (discussed later in the "Culture" section)
    [assembly:AssemblyCulture("")]
    

    然后进行文件的生成 先进入Clr via c# 文件夹:

    方法1:

    csc /t:module  /debug:full /out:Ch02-3-RUT.netmodule Ch02-3-RUT.cs
    csc /t:library /debug:full /out:Ch02-3-MultiFileLibrary.dll /addmodule:Ch02-3-RUT.netmodule Ch02-3-FUT.cs Ch02-3-AssemblyVersionInfo.cs

    方法2:需要将所有文件所有文件移动到bindebug文件夹下,不然会找不到FUt这个文件。

    csc /t:module /debug:full /out:Ch02-3-RUT.netmodule Ch02-3-RUT.cs
    csc /t:module /debug:full /out:Ch02-3-FUT.netmodule Ch02-3-FUT.cs Ch02-3-AssemblyVersionInfo.cs
    al  /out:Ch02-3-MultiFileLibrary.dll /t:library Ch02-3-RUT.netmodule Ch02-3-FUT.netmodule

    这是生成的文件:

    image

    这是 RUT的元数据

    ===========================================================
    ScopeName : Ch02-3-RUT.netmodule
    MVID      : {47D0E682-537C-4CD3-94F1-74CC1A54613C}
    ===========================================================
    Global functions
    -------------------------------------------------------
    
    Global fields
    -------------------------------------------------------
    
    Global MemberRefs
    -------------------------------------------------------
    
    TypeDef #1 (02000002)
    -------------------------------------------------------
    	TypDefName: ARarelyUsedType  (02000002)
    	Flags     : [Public] [AutoLayout] [Class] [Sealed] [AnsiClass] [BeforeFieldInit]  (00100101)
    	Extends   : 01000001 [TypeRef] System.Object
    	Method #1 (06000001)
    	-------------------------------------------------------
    		MethodName: .ctor (06000001)
    		Flags     : [Public] [HideBySig] [ReuseSlot] [SpecialName] [RTSpecialName] [.ctor]  (00001886)
    		RVA       : 0x00002050
    		ImplFlags : [IL] [Managed]  (00000000)
    		CallCnvntn: [DEFAULT]
    		hasThis
    		ReturnType: Void
    		No arguments.
    
    
    TypeRef #1 (01000001)
    -------------------------------------------------------
    Token:             0x01000001
    ResolutionScope:   0x23000001
    TypeRefName:       System.Object
    	MemberRef #1 (0a000001)
    	-------------------------------------------------------
    		Member: (0a000001) .ctor:
    		CallCnvntn: [DEFAULT]
    		hasThis
    		ReturnType: Void
    		No arguments.
    
    TypeRef #2 (01000002)
    -------------------------------------------------------
    Token:             0x01000002
    ResolutionScope:   0x23000001
    TypeRefName:       System.Console
    	MemberRef #1 (0a000002)
    	-------------------------------------------------------
    		Member: (0a000002) WriteLine:
    		CallCnvntn: [DEFAULT]
    		ReturnType: Void
    		1 Arguments
    			Argument #1:  String
    
    AssemblyRef #1 (23000001)
    -------------------------------------------------------
    	Token: 0x23000001
    	Public Key or Token: b7 7a 5c 56 19 34 e0 89
    	Name: mscorlib
    	Version: 4.0.0.0
    	Major Version: 0x00000004
    	Minor Version: 0x00000000
    	Build Number: 0x00000000
    	Revision Number: 0x00000000
    	Locale: <null>
    	HashValue Blob:
    	Flags: [none] (00000000)
    
    
    User Strings
    -------------------------------------------------------
    70000001 : (35) L"A rarely used type was constructed."
    
    
    Coff symbol name overhead:  0
    ===========================================================
    ===========================================================
    ===========================================================
    

    这是FUT的元数据

    ScopeName : Ch02-3-FUT.netmodule
    MVID      : {E6088791-AAB7-4FA3-88BB-AEEB8CE9E21B}
    ===========================================================
    Global functions
    -------------------------------------------------------
    
    Global fields
    -------------------------------------------------------
    
    Global MemberRefs
    -------------------------------------------------------
    
    TypeDef #1 (02000002)
    -------------------------------------------------------
    	TypDefName: AFrequentlyUsedType  (02000002)
    	Flags     : [Public] [AutoLayout] [Class] [Sealed] [AnsiClass] [BeforeFieldInit]  (00100101)
    	Extends   : 0100000B [TypeRef] System.Object
    	Method #1 (06000001)
    	-------------------------------------------------------
    		MethodName: .ctor (06000001)
    		Flags     : [Public] [HideBySig] [ReuseSlot] [SpecialName] [RTSpecialName] [.ctor]  (00001886)
    		RVA       : 0x00002050
    		ImplFlags : [IL] [Managed]  (00000000)
    		CallCnvntn: [DEFAULT]
    		hasThis
    		ReturnType: Void
    		No arguments.
    
    
    TypeRef #1 (01000001)
    -------------------------------------------------------
    Token:             0x01000001
    ResolutionScope:   0x23000001
    TypeRefName:       System.Reflection.AssemblyTitleAttribute
    	MemberRef #1 (0a000001)
    	-------------------------------------------------------
    		Member: (0a000001) .ctor://类型有一个构造函数。
    		CallCnvntn: [DEFAULT]
    		hasThis
    		ReturnType: Void
    		1 Arguments
    			Argument #1:  String
    
    TypeRef #2 (01000002)
    -------------------------------------------------------
    Token:             0x01000002
    ResolutionScope:   0x23000001
    TypeRefName:       System.Reflection.AssemblyDescriptionAttribute
    	MemberRef #1 (0a000002)
    	-------------------------------------------------------
    		Member: (0a000002) .ctor:
    		CallCnvntn: [DEFAULT]
    		hasThis
    		ReturnType: Void
    		1 Arguments
    			Argument #1:  String
    
    TypeRef #3 (01000003)
    -------------------------------------------------------
    Token:             0x01000003
    ResolutionScope:   0x23000001
    TypeRefName:       System.Reflection.AssemblyCompanyAttribute
    	MemberRef #1 (0a000003)
    	-------------------------------------------------------
    		Member: (0a000003) .ctor:
    		CallCnvntn: [DEFAULT]
    		hasThis
    		ReturnType: Void
    		1 Arguments
    			Argument #1:  String
    
    TypeRef #4 (01000004)
    -------------------------------------------------------
    Token:             0x01000004
    ResolutionScope:   0x23000001
    TypeRefName:       System.Reflection.AssemblyProductAttribute
    	MemberRef #1 (0a000004)
    	-------------------------------------------------------
    		Member: (0a000004) .ctor:
    		CallCnvntn: [DEFAULT]
    		hasThis
    		ReturnType: Void
    		1 Arguments
    			Argument #1:  String
    
    TypeRef #5 (01000005)
    -------------------------------------------------------
    Token:             0x01000005
    ResolutionScope:   0x23000001
    TypeRefName:       System.Reflection.AssemblyCopyrightAttribute
    	MemberRef #1 (0a000005)
    	-------------------------------------------------------
    		Member: (0a000005) .ctor:
    		CallCnvntn: [DEFAULT]
    		hasThis
    		ReturnType: Void
    		1 Arguments
    			Argument #1:  String
    
    TypeRef #6 (01000006)
    -------------------------------------------------------
    Token:             0x01000006
    ResolutionScope:   0x23000001
    TypeRefName:       System.Reflection.AssemblyTrademarkAttribute
    	MemberRef #1 (0a000006)
    	-------------------------------------------------------
    		Member: (0a000006) .ctor:
    		CallCnvntn: [DEFAULT]
    		hasThis
    		ReturnType: Void
    		1 Arguments
    			Argument #1:  String
    
    TypeRef #7 (01000007)
    -------------------------------------------------------
    Token:             0x01000007
    ResolutionScope:   0x23000001
    TypeRefName:       System.Reflection.AssemblyVersionAttribute
    	MemberRef #1 (0a000007)
    	-------------------------------------------------------
    		Member: (0a000007) .ctor:
    		CallCnvntn: [DEFAULT]
    		hasThis
    		ReturnType: Void
    		1 Arguments
    			Argument #1:  String
    
    TypeRef #8 (01000008)
    -------------------------------------------------------
    Token:             0x01000008
    ResolutionScope:   0x23000001
    TypeRefName:       System.Reflection.AssemblyFileVersionAttribute
    	MemberRef #1 (0a000008)
    	-------------------------------------------------------
    		Member: (0a000008) .ctor:
    		CallCnvntn: [DEFAULT]
    		hasThis
    		ReturnType: Void
    		1 Arguments
    			Argument #1:  String
    
    TypeRef #9 (01000009)
    -------------------------------------------------------
    Token:             0x01000009
    ResolutionScope:   0x23000001
    TypeRefName:       System.Reflection.AssemblyInformationalVersionAttribute
    	MemberRef #1 (0a000009)
    	-------------------------------------------------------
    		Member: (0a000009) .ctor:
    		CallCnvntn: [DEFAULT]
    		hasThis
    		ReturnType: Void
    		1 Arguments
    			Argument #1:  String
    
    TypeRef #10 (0100000a)
    -------------------------------------------------------
    Token:             0x0100000a
    ResolutionScope:   0x23000001
    TypeRefName:       System.Reflection.AssemblyCultureAttribute
    	MemberRef #1 (0a00000a)
    	-------------------------------------------------------
    		Member: (0a00000a) .ctor:
    		CallCnvntn: [DEFAULT]
    		hasThis
    		ReturnType: Void
    		1 Arguments
    			Argument #1:  String
    
    TypeRef #11 (0100000b)
    -------------------------------------------------------
    Token:             0x0100000b
    ResolutionScope:   0x23000001
    TypeRefName:       System.Object
    	MemberRef #1 (0a00000b)
    	-------------------------------------------------------
    		Member: (0a00000b) .ctor:
    		CallCnvntn: [DEFAULT]
    		hasThis
    		ReturnType: Void
    		No arguments.
    
    TypeRef #12 (0100000c)
    -------------------------------------------------------
    Token:             0x0100000c
    ResolutionScope:   0x23000001
    TypeRefName:       System.Console
    	MemberRef #1 (0a00000c)
    	-------------------------------------------------------
    		Member: (0a00000c) WriteLine:
    		CallCnvntn: [DEFAULT]
    		ReturnType: Void
    		1 Arguments
    			Argument #1:  String
    
    TypeRef #13 (0100000d)
    -------------------------------------------------------
    Token:             0x0100000d
    ResolutionScope:   0x23000001
    TypeRefName:       System.Runtime.CompilerServices.AssemblyAttributesGoHere
    	CustomAttribute #1 (0c000001)
    	-------------------------------------------------------
    		CustomAttribute Type: 0a000001
    		CustomAttributeName: System.Reflection.AssemblyTitleAttribute :: instance void .ctor(class System.String)
    		Length: 18
    		Value : 01 00 0d 4a 65 66 66 54  79 70 65 73 2e 64 6c 6c >   JeffTypes.dll<
                          : 00 00                                            >                <
    		ctor args: ("JeffTypes.dll")//创建了属性对象并且初始化
    
    	CustomAttribute #2 (0c000002)
    	-------------------------------------------------------
    		CustomAttribute Type: 0a000002
    		CustomAttributeName: System.Reflection.AssemblyDescriptionAttribute :: instance void .ctor(class System.String)
    		Length: 40
    		Value : 01 00 23 54 68 69 73 20  61 73 73 65 6d 62 6c 79 >  #This assembly<
                          : 20 63 6f 6e 74 61 69 6e  73 20 4a 65 66 66 27 73 > contains Jeff's<
                          : 20 74 79 70 65 73 00 00                          > types          <
    		ctor args: ("This assembly contains Jeff's types")
    
    	CustomAttribute #3 (0c000003)
    	-------------------------------------------------------
    		CustomAttribute Type: 0a000003
    		CustomAttributeName: System.Reflection.AssemblyCompanyAttribute :: instance void .ctor(class System.String)
    		Length: 15
    		Value : 01 00 0a 57 69 6e 74 65  6c 6c 65 63 74 00 00    >   Wintellect   <
    		ctor args: ("Wintellect")
    
    	CustomAttribute #4 (0c000004)
    	-------------------------------------------------------
    		CustomAttribute Type: 0a000004
    		CustomAttributeName: System.Reflection.AssemblyProductAttribute :: instance void .ctor(class System.String)
    		Length: 39
    		Value : 01 00 22 57 69 6e 74 65  6c 6c 65 63 74 20 28 52 >  "Wintellect (R<
                          : 29 20 4a 65 66 66 27 73  20 54 79 70 65 20 4c 69 >) Jeff's Type Li<
                          : 62 72 61 72 79 00 00                             >brary           <
    		ctor args: ("Wintellect (R) Jeff's Type Library")
    
    	CustomAttribute #5 (0c000005)
    	-------------------------------------------------------
    		CustomAttribute Type: 0a000005
    		CustomAttributeName: System.Reflection.AssemblyCopyrightAttribute :: instance void .ctor(class System.String)
    		Length: 34
    		Value : 01 00 1d 43 6f 70 79 72  69 67 68 74 20 28 63 29 >   Copyright (c)<
                          : 20 57 69 6e 74 65 6c 6c  65 63 74 20 32 30 31 30 > Wintellect 2010<
                          : 00 00                                            >                <
    		ctor args: ("Copyright (c) Wintellect 2010")
    
    	CustomAttribute #6 (0c000006)
    	-------------------------------------------------------
    		CustomAttribute Type: 0a000006
    		CustomAttributeName: System.Reflection.AssemblyTrademarkAttribute :: instance void .ctor(class System.String)
    		Length: 54
    		Value : 01 00 31 4a 65 66 66 54  79 70 65 73 20 69 73 20 >  1JeffTypes is <
                          : 61 20 72 65 67 69 73 74  65 72 65 64 20 74 72 61 >a registered tra<
                          : 64 65 6d 61 72 6b 20 6f  66 20 57 69 6e 74 65 6c >demark of Wintel<
                          : 6c 65 63 74 00 00                                >lect            <
    		ctor args: ("JeffTypes is a registered trademark of Wintellect")
    
    	CustomAttribute #7 (0c000007)
    	-------------------------------------------------------
    		CustomAttribute Type: 0a000007
    		CustomAttributeName: System.Reflection.AssemblyVersionAttribute :: instance void .ctor(class System.String)
    		Length: 12
    		Value : 01 00 07 33 2e 30 2e 30  2e 30 00 00             >   3.0.0.0      <
    		ctor args: ("3.0.0.0")
    
    	CustomAttribute #8 (0c000008)
    	-------------------------------------------------------
    		CustomAttribute Type: 0a000008
    		CustomAttributeName: System.Reflection.AssemblyFileVersionAttribute :: instance void .ctor(class System.String)
    		Length: 12
    		Value : 01 00 07 31 2e 30 2e 30  2e 30 00 00             >   1.0.0.0      <
    		ctor args: ("1.0.0.0")
    
    	CustomAttribute #9 (0c000009)
    	-------------------------------------------------------
    		CustomAttribute Type: 0a000009
    		CustomAttributeName: System.Reflection.AssemblyInformationalVersionAttribute :: instance void .ctor(class System.String)
    		Length: 12
    		Value : 01 00 07 32 2e 30 2e 30  2e 30 00 00             >   2.0.0.0      <
    		ctor args: ("2.0.0.0")
    
    	CustomAttribute #10 (0c00000a)
    	-------------------------------------------------------
    		CustomAttribute Type: 0a00000a
    		CustomAttributeName: System.Reflection.AssemblyCultureAttribute :: instance void .ctor(class System.String)
    		Length: 5
    		Value : 01 00 00 00 00                                   >                <
    		ctor args: ("")
    
    
    AssemblyRef #1 (23000001)
    -------------------------------------------------------
    	Token: 0x23000001
    	Public Key or Token: b7 7a 5c 56 19 34 e0 89
    	Name: mscorlib
    	Version: 4.0.0.0
    	Major Version: 0x00000004
    	Minor Version: 0x00000000
    	Build Number: 0x00000000
    	Revision Number: 0x00000000
    	Locale: <null>
    	HashValue Blob:
    	Flags: [none] (00000000)
    
    
    User Strings
    -------------------------------------------------------
    70000001 : (39) L"A frequently used type was constructed."
    
    
    Coff symbol name overhead:  0
    ===========================================================
    ===========================================================
    ===========================================================
    

    注意其中的 属性对应的东西。 生成了属性的方法和属性的CustomAttribute。

    下面是合成的Ch02-3-MultiFileLibrary.dll 的文件

    ===========================================================
    ScopeName : Ch02-3-MultiFileLibrary.dll
    MVID      : {31DACE10-F746-4EA0-8641-97856BBC0726}
    ===========================================================
    Global functions
    -------------------------------------------------------
    
    Global fields
    -------------------------------------------------------
    
    Global MemberRefs
    -------------------------------------------------------
    
    TypeRef #1 (01000001)
    -------------------------------------------------------
    Token:             0x01000001
    ResolutionScope:   0x23000001
    TypeRefName:       System.Reflection.AssemblyTitleAttribute
    	MemberRef #1 (0a000001)
    	-------------------------------------------------------
    		Member: (0a000001) .ctor:
    		CallCnvntn: [DEFAULT]
    		hasThis
    		ReturnType: Void
    		1 Arguments
    			Argument #1:  String
    
    TypeRef #2 (01000002)
    -------------------------------------------------------
    Token:             0x01000002
    ResolutionScope:   0x23000001
    TypeRefName:       System.Reflection.AssemblyDescriptionAttribute
    	MemberRef #1 (0a000002)
    	-------------------------------------------------------
    		Member: (0a000002) .ctor:
    		CallCnvntn: [DEFAULT]
    		hasThis
    		ReturnType: Void
    		1 Arguments
    			Argument #1:  String
    
    TypeRef #3 (01000003)
    -------------------------------------------------------
    Token:             0x01000003
    ResolutionScope:   0x23000001
    TypeRefName:       System.Reflection.AssemblyCompanyAttribute
    	MemberRef #1 (0a000003)
    	-------------------------------------------------------
    		Member: (0a000003) .ctor:
    		CallCnvntn: [DEFAULT]
    		hasThis
    		ReturnType: Void
    		1 Arguments
    			Argument #1:  String
    
    TypeRef #4 (01000004)
    -------------------------------------------------------
    Token:             0x01000004
    ResolutionScope:   0x23000001
    TypeRefName:       System.Reflection.AssemblyProductAttribute
    	MemberRef #1 (0a000004)
    	-------------------------------------------------------
    		Member: (0a000004) .ctor:
    		CallCnvntn: [DEFAULT]
    		hasThis
    		ReturnType: Void
    		1 Arguments
    			Argument #1:  String
    
    TypeRef #5 (01000005)
    -------------------------------------------------------
    Token:             0x01000005
    ResolutionScope:   0x23000001
    TypeRefName:       System.Reflection.AssemblyCopyrightAttribute
    	MemberRef #1 (0a000005)
    	-------------------------------------------------------
    		Member: (0a000005) .ctor:
    		CallCnvntn: [DEFAULT]
    		hasThis
    		ReturnType: Void
    		1 Arguments
    			Argument #1:  String
    
    TypeRef #6 (01000006)
    -------------------------------------------------------
    Token:             0x01000006
    ResolutionScope:   0x23000001
    TypeRefName:       System.Reflection.AssemblyTrademarkAttribute
    	MemberRef #1 (0a000006)
    	-------------------------------------------------------
    		Member: (0a000006) .ctor:
    		CallCnvntn: [DEFAULT]
    		hasThis
    		ReturnType: Void
    		1 Arguments
    			Argument #1:  String
    
    TypeRef #7 (01000007)
    -------------------------------------------------------
    Token:             0x01000007
    ResolutionScope:   0x23000001
    TypeRefName:       System.Reflection.AssemblyFileVersionAttribute
    	MemberRef #1 (0a000007)
    	-------------------------------------------------------
    		Member: (0a000007) .ctor:
    		CallCnvntn: [DEFAULT]
    		hasThis
    		ReturnType: Void
    		1 Arguments
    			Argument #1:  String
    
    TypeRef #8 (01000008)
    -------------------------------------------------------
    Token:             0x01000008
    ResolutionScope:   0x23000001
    TypeRefName:       System.Reflection.AssemblyInformationalVersionAttribute
    	MemberRef #1 (0a000008)
    	-------------------------------------------------------
    		Member: (0a000008) .ctor:
    		CallCnvntn: [DEFAULT]
    		hasThis
    		ReturnType: Void
    		1 Arguments
    			Argument #1:  String
    
    Assembly//程序集信息
    -------------------------------------------------------
    	Token: 0x20000001
    	Name : Ch02-3-MultiFileLibrary
    	Public Key    :
    	Hash Algorithm : 0x00008004
    	Version: 3.0.0.0
    	Major Version: 0x00000003
    	Minor Version: 0x00000000
    	Build Number: 0x00000000
    	Revision Number: 0x00000000
    	Locale: <null>
    	Flags : [none] (00000000)
    	CustomAttribute #1 (0c000001)//嵌入的程序集中属性信息。
    	-------------------------------------------------------
    		CustomAttribute Type: 0a000001
    		CustomAttributeName: System.Reflection.AssemblyTitleAttribute :: instance void .ctor(class System.String)
    		Length: 18
    		Value : 01 00 0d 4a 65 66 66 54  79 70 65 73 2e 64 6c 6c >   JeffTypes.dll<
                          : 00 00                                            >                <
    		ctor args: ("JeffTypes.dll")
    
    	CustomAttribute #2 (0c000002)
    	-------------------------------------------------------
    		CustomAttribute Type: 0a000002
    		CustomAttributeName: System.Reflection.AssemblyDescriptionAttribute :: instance void .ctor(class System.String)
    		Length: 40
    		Value : 01 00 23 54 68 69 73 20  61 73 73 65 6d 62 6c 79 >  #This assembly<
                          : 20 63 6f 6e 74 61 69 6e  73 20 4a 65 66 66 27 73 > contains Jeff's<
                          : 20 74 79 70 65 73 00 00                          > types          <
    		ctor args: ("This assembly contains Jeff's types")
    
    	CustomAttribute #3 (0c000003)
    	-------------------------------------------------------
    		CustomAttribute Type: 0a000003
    		CustomAttributeName: System.Reflection.AssemblyCompanyAttribute :: instance void .ctor(class System.String)
    		Length: 15
    		Value : 01 00 0a 57 69 6e 74 65  6c 6c 65 63 74 00 00    >   Wintellect   <
    		ctor args: ("Wintellect")
    
    	CustomAttribute #4 (0c000004)
    	-------------------------------------------------------
    		CustomAttribute Type: 0a000004
    		CustomAttributeName: System.Reflection.AssemblyProductAttribute :: instance void .ctor(class System.String)
    		Length: 39
    		Value : 01 00 22 57 69 6e 74 65  6c 6c 65 63 74 20 28 52 >  "Wintellect (R<
                          : 29 20 4a 65 66 66 27 73  20 54 79 70 65 20 4c 69 >) Jeff's Type Li<
                          : 62 72 61 72 79 00 00                             >brary           <
    		ctor args: ("Wintellect (R) Jeff's Type Library")
    
    	CustomAttribute #5 (0c000005)
    	-------------------------------------------------------
    		CustomAttribute Type: 0a000005
    		CustomAttributeName: System.Reflection.AssemblyCopyrightAttribute :: instance void .ctor(class System.String)
    		Length: 34
    		Value : 01 00 1d 43 6f 70 79 72  69 67 68 74 20 28 63 29 >   Copyright (c)<
                          : 20 57 69 6e 74 65 6c 6c  65 63 74 20 32 30 31 30 > Wintellect 2010<
                          : 00 00                                            >                <
    		ctor args: ("Copyright (c) Wintellect 2010")
    
    	CustomAttribute #6 (0c000006)
    	-------------------------------------------------------
    		CustomAttribute Type: 0a000006
    		CustomAttributeName: System.Reflection.AssemblyTrademarkAttribute :: instance void .ctor(class System.String)
    		Length: 54
    		Value : 01 00 31 4a 65 66 66 54  79 70 65 73 20 69 73 20 >  1JeffTypes is <
                          : 61 20 72 65 67 69 73 74  65 72 65 64 20 74 72 61 >a registered tra<
                          : 64 65 6d 61 72 6b 20 6f  66 20 57 69 6e 74 65 6c >demark of Wintel<
                          : 6c 65 63 74 00 00                                >lect            <
    		ctor args: ("JeffTypes is a registered trademark of Wintellect")
    
    	CustomAttribute #7 (0c000007)
    	-------------------------------------------------------
    		CustomAttribute Type: 0a000007
    		CustomAttributeName: System.Reflection.AssemblyFileVersionAttribute :: instance void .ctor(class System.String)
    		Length: 12
    		Value : 01 00 07 31 2e 30 2e 30  2e 30 00 00             >   1.0.0.0      <
    		ctor args: ("1.0.0.0")
    
    	CustomAttribute #8 (0c000008)
    	-------------------------------------------------------
    		CustomAttribute Type: 0a000008
    		CustomAttributeName: System.Reflection.AssemblyInformationalVersionAttribute :: instance void .ctor(class System.String)
    		Length: 12
    		Value : 01 00 07 32 2e 30 2e 30  2e 30 00 00             >   2.0.0.0      <
    		ctor args: ("2.0.0.0")
    
    
    AssemblyRef #1 (23000001)//相关程序集
    -------------------------------------------------------
    	Token: 0x23000001
    	Public Key or Token: b7 7a 5c 56 19 34 e0 89
    	Name: mscorlib
    	Version: 4.0.0.0
    	Major Version: 0x00000004
    	Minor Version: 0x00000000
    	Build Number: 0x00000000
    	Revision Number: 0x00000000
    	Locale: <null>
    	HashValue Blob:
    	Flags: [none] (00000000)
    
    
    File #1 (26000001)//相关文件
    -------------------------------------------------------
    	Token: 0x26000001
    	Name : Ch02-3-RUT.netmodule
    	HashValue Blob : 5b fa 12 3e a9 d0 b0 da  fa 38 30 e9 ca 49 21 c0  1b c1 bc bb
    	Flags : [ContainsMetaData]  (00000000)
    
    
    File #2 (26000002)
    -------------------------------------------------------
    	Token: 0x26000002
    	Name : Ch02-3-FUT.netmodule
    	HashValue Blob : 72 3c cc 7d 75 d1 0a 78  df 09 a3 a8 71 3a e9 68  fe bb 0b 5e
    	Flags : [ContainsMetaData]  (00000000)
    
    
    ExportedType #1 (27000001)//输出的类型
    -------------------------------------------------------
    	Token: 0x27000001
    	Name: ARarelyUsedType
    	Implementation token: 0x26000001
    	TypeDef token: 0x02000002
    	Flags     : [Public] [AutoLayout] [Class] [Sealed] [AnsiClass] [BeforeFieldInit]  (00100101)
    
    
    ExportedType #2 (27000002)
    -------------------------------------------------------
    	Token: 0x27000002
    	Name: AFrequentlyUsedType
    	Implementation token: 0x26000002
    	TypeDef token: 0x02000002
    	Flags     : [Public] [AutoLayout] [Class] [Sealed] [AnsiClass] [BeforeFieldInit]  (00100101)
    
    
    User Strings
    -------------------------------------------------------
    70000001 : ( 1) L" "
    
    
    Coff symbol name overhead:  0
    ===========================================================
    ===========================================================
    ===========================================================
    

    6,在VS中引用程序集

    想引用程序集中的解决方案,可以右击项目,然后在引用里面添加

    image

    • 程序集:添加程序集
    • 项目:解决方案,在同一个解决方案的一个项目引用不同项目的方法
    • COM:允许托管代码访问非托管的COM对象
    • 浏览:自定义插入程序集。

    7,为程序集添加资源文件:

    AL.EXE支持嵌入资源文件---/embed[resource] /link[resource]

    csc.exe 支持嵌入资源文件---/resource ---linkresource

    8,程序集信息

    1,程序集信息输入方式:

    • 在项目上属性,程序集里面可以看到信息
    • using System.Reflection;
      
      // FileDescription version information:
      [assembly: AssemblyTitle("JeffTypes.dll")]
      
      // Comments version information:
      [assembly: AssemblyDescription("This assembly contains Jeff's types")]
      
      // CompanyName version information:
      [assembly: AssemblyCompany("Wintellect")]
      
      // ProductName version information:
      [assembly: AssemblyProduct("Wintellect (R) Jeff's Type Library")]
      
      // LegalCopyright version information:
      [assembly: AssemblyCopyright("Copyright (c) Wintellect 2010")]
      
      // LegalTrademarks version information:
      [assembly:AssemblyTrademark("JeffTypes is a registered trademark of Wintellect")]
      
      // AssemblyVersion version information:
      [assembly: AssemblyVersion("3.0.0.0")]
      
      // FILEVERSION/FileVersion version information:
      [assembly: AssemblyFileVersion("1.0.0.0")]
      
      // PRODUCTVERSION/ProductVersion version information:
      [assembly: AssemblyInformationalVersion("2.0.0.0")]
      
      // Set the Language field (discussed later in the "Culture" section)
      [assembly:AssemblyCulture("")]
    • image
    • 我的git地址-----CLR from c# 配套编程文件:在VS中下载即可。
    • 我的git教程----查看我之前的git博文
  • 相关阅读:
    git 去除对某个文件的版本控制
    10:08 小记
    写读书笔记
    恢复已删除且已添加至暂存区的文件
    第七周
    第六周
    软件测试
    短信获取
    Android-8
    增删改查
  • 原文地址:https://www.cnblogs.com/frogkiller/p/12238907.html
Copyright © 2020-2023  润新知