Инсталляция примера программной системы
Рис. 7.11. ILDASM показывает декларацию Customer.dll
Инструкция метаданных .assembly extern mscorlib указывает, что сборка Customer (Клиент) использует (и поэтому зависит от нее) стандартную сборку mccorlib.dll, которая нужна для всего управляемого кода. Когда в сборке встречается ссылка на другую сборку, вы увидите инструкцию метаданных .assembly extern. Если открыть AcmeGui в ILADASM, то в декларации вы увидите зависимости от нескольких других сборок, включая зависимости от сборок Customer (Клиент) и Hotel (Гостиница), а также зависимости от сборки System.Drawing (Система.Рисунок).
.assembly extern Customer { .publickeytoken = (8В ОЕ 61 2D 60 BD EO CA) .ver 1:0:641:33530 } .assembly extern Hotel { .publickeytoken = (CF OB C2 2F 8E 2C 15 22) .ver 1:0:641:33536 } .assembly extern System.Drawing { .publickeytoken = (BO 3F 5F 7F 11 D5 OA ЗА) .ver 1:0:2411:0 }
Сборка System.Drawing (Система.Рисунок) – общедоступная сборка, которую можно легко найти в каталоге \WINNT\Assembly с помощью Проводника Windows (Windows Explorer). Общедоступная сборка mscorlib не развернута в кэше сборки. Microsoft сделала единственное исключение для этой сборки, потому что mscorlib так близко связана с механизмом общеязыковой среды выполнения CLR (mscorwks), что она устанавливается в соответствующем каталоге установки (\WINNT\Microsoft .NET\Framework) для текущей версии .NET.
В общедоступной сборке System.Drawing (Система.Рисунок) инструкция метаданных .publickeytoken = (ВО 3F 5F 7F 11 D5 ОА ЗА) содержит лексему открытого ключа, представляющую собой самые младшие 8 байтов хэш-кода открытого ключа, который соответствует своему секретному ключу, принадлежащему автору сборки System.Drawing (Система.Рисунок). Эта лексема открытого ключа не может фактически непосредственно использоваться для того, чтобы подтвердить подлинность автора сборки System.Drawing (Система.Рисунок). Однако первоначальный открытый ключ, указанный в декларации System.Drawing (Система.Рисунок) может использоваться, чтобы математически проверить, что для того, чтобы подписать сборку System.Drawing (Система.Рисунок) в цифровой форме на самом деле использовался соответствующий секретный ключ. Поскольку Microsoft создала System.Drawing.dll, лексема открытого ключа, приведенная выше, принадлежит, несомненно, Microsoft.