Skip to content

Latest commit

 

History

History
43 lines (22 loc) · 2.31 KB

ii.22.5-assemblyref-0x23.md

File metadata and controls

43 lines (22 loc) · 2.31 KB

II.22.5 AssemblyRef: 0x23

The AssemblyRef table has the following columns:

  • MajorVersion, MinorVersion, BuildNumber, RevisionNumber (each being 2-byte constants)

  • Flags (a 4-byte bitmask of type AssemblyFlags, §II.23.1.2)

  • PublicKeyOrToken (an index into the Blob heap, indicating the public key or token that identifies the author of this Assembly)

  • Name (an index into the String heap)

  • Culture (an index into the String heap)

  • HashValue (an index into the Blob heap)

The table is defined by the .assembly extern directive (§II.6.3). Its columns are filled using directives similar to those of the Assembly table except for the PublicKeyOrToken column, which is defined using the .publickeytoken directive. (For an example, see §II.6.3.)

This contains informative text only.

  1. MajorVersion, MinorVersion, BuildNumber, and RevisionNumber can each have any value

  2. Flags shall have only one bit set, the PublicKey bit (§II.23.1.2). All other bits shall be zero. [ERROR]

  3. PublicKeyOrToken can be null, or non-null (note that the Flags.PublicKey bit specifies whether the 'blob' is a full public key, or the short hashed token)

  4. If non-null, then PublicKeyOrToken shall index a valid offset in the Blob heap [ERROR]

  5. Name shall index a non-empty string, in the String heap (there is no limit to its length) [ERROR]

  6. Culture can be null or non-null.

  7. If non-null, it shall index a single string from the list specified (§II.23.1.3) [ERROR]

  8. HashValue can be null or non-null

  9. If non-null, then HashValue shall index a non-empty 'blob' in the Blob heap [ERROR]

  10. The AssemblyRef table shall contain no duplicates (where duplicate rows are deemed to be those having the same MajorVersion, MinorVersion, BuildNumber, RevisionNumber, PublicKeyOrToken, Name, and Culture) [WARNING]

[Note: Name is a simple name (e.g., "Foo", with no drive letter, no path, and no file extension); on POSIX-compliant systems Name contains no colon, no forward-slash, no backslash, and no period. end note]

End informative text.