CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 3 of 3

Threaded View

  1. #1
    Join Date
    Jan 2003
    Posts
    615

    dotnet assemblies

    Recently I started looking into visual studio utilties such as dumpbin.exe and ildasm.exe to get a better understanding of assemblies in dotnet. A few questions came up and I'd appreciate some input.

    Code:
    // The executable is developed using vs 2005.
    // dumpbin /all exename (copied only clr header section)
      clr Header:
    
                  48 cb
                2.05 runtime version
               19930 [    F6E4] RVA [size] of MetaData Directory
                   1 flags
             60000BC entry point token
                CDB0 [    CB80] RVA [size] of Resources Directory
                   0 [       0] RVA [size] of StrongNameSignature Directory
                   0 [       0] RVA [size] of CodeManagerTable Directory
                   0 [       0] RVA [size] of VTableFixups Directory
                   0 [       0] RVA [size] of ExportAddressTableJumps Directory
                   0 [       0] RVA [size] of ManagedNativeHeader Directory
    
    // The executable is developed using vs 2002.
    // dumpbin /all exename (copied only clr header section)			   
    
      clr Header:
    
                  48 cb
                2.00 runtime version
                BC14 [    B82C] RVA [size] of MetaData Directory
                   1 flags
             6000004 entry point token
                A358 [    18BC] RVA [size] of Resources Directory
                   0 [       0] RVA [size] of StrongNameSignature Directory
                   0 [       0] RVA [size] of CodeManagerTable Directory
                   0 [       0] RVA [size] of VTableFixups Directory
                   0 [       0] RVA [size] of ExportAddressTableJumps Directory
                   0 [       0] RVA [size] of ManagedNativeHeader Directory
    The following 1.0.3705, 1.1.4322, 2.0.50727 .NET versions are installed on my computer.

    1. Why does the CLR header operate with runtime version 2.00 and 2.05? I would expect the application built with vs2002 to use .NET 1.1 and the project built with vs2005 to use .NET version 2.0. The above information does not make sence to me.

    2. Does mscoree.dll use the runtime version info in the clr header to determine which clr to use?


    Code:
    // The executable is developed using vs 2005.
    // ildasm exefile (copied only first section of manifest)
    // Metadata version: v2.0.50727
    
    .module extern user32.dll
    .assembly extern mscorlib
    {
      .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                         // .z\V.4..
      .ver 2:0:0:0
    }
    .assembly extern System
    {
      .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                         // .z\V.4..
      .ver 2:0:0:0
    }
    .assembly extern System.Drawing
    {
      .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A )                         // .?_....:
      .ver 2:0:0:0
    }
    .assembly extern System.Windows.Forms
    {
      .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                         // .z\V.4..
      .ver 2:0:0:0
    }
    3. In the above output all .NET assemblies ref to verion 2.0.0.0. None of these files exist on my computer with version 2.0.0.0. They all use 2.0.50727. How does this work?
    Last edited by laasunde; February 21st, 2008 at 05:56 AM. Reason: Decreased the length of the post
    Before post, make an effort yourself, try googling or search here.

    When posting, give a proper description of your problem, include code* and error messages.

    *All code should include code tags

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured