Анализ манифеста
Анализ манифеста
Перед тем как использовать CarLibrary.dll в приложении-клиенте, давайте выясним, из чего скомпонована библиотека программного кода. Предположив, что наш проект уже скомпилирован, загрузим CarLibrary.dll в ildasm.exe (рис. 11.7).

Рис. 11.7. Библиотека CarLibrary.dll в окне ildasm.exe
Теперь откройте манифест файла CarLibrary.dll двойным щелчком на пиктограмме MANIFEST. В первом блоке программного кода манифеста указываются внешние компоновочные блоки, необходимые соответствующему компоновочному блоку для правильного функционирования. Как вы помните, CarLibrary.dll использует типы из mscorlib.dll и System.Windows.Forms.dll, и оба эти файла будут указаны в списке манифеста с помощью лексемы .assembly extern внешних связей компоновочного блока.
.assembly extern mscorlib {
.publickeytoken = (В7 7A 5C 56 19 34 E0 89)
.ver 2:0:0:0
}
.assembly extern System.Windows.Forms {
.publickeytoken = (B7 7A 5C 56 19 34 E0 89)
.ver 2:0:0:0.
}
Здесь каждый блок .assembly extern снабжен директивами .publickeytoken и .ver. Инструкция .publickeytoken указывается только тогда, когда компоновочный блок имеет строгую форму имени (подробности будут приведены в этой главе позже). Лексема.ver обозначает (конечно же) числовой идентификатор версии.
После списка каталогизации внешних ссылок вы обнаружите ряд лексем.custom, идентифицирующих атрибуты уровня компоновочного блока. Проверив файл AssemblyInfо.cs, созданный в Visual Studio 2005, вы обнаружите, что эти атрибуты представляют такую информацию о компоновочном блоке, как название компании, торговая марка и т.д. (все соответствующие поля в данный момент пусты). В главе 14 атрибуты будут рассматриваться подробно, поэтому пока что не обращайте на них большого внимания. Однако следует знать, что атрибуты из AssemblyInfo.cs добавляют в манифест ряд лексем .custom, например, [AssemblyTitle].
.assembly CarLibrary {
…
.custom instance void [mscorlib]
System.Reflection.AssemblyTitleAttribute::.ctor(string) = (01 00 00 00 00)
.hash algorithm 0x00008004
.ver 1:0:454:30104
}
.module CarLibrary.dll
Наконец, вы можете заметить, что лексема .assembly используется для обозначения понятного имени компоновочного блока (CarLibrary), в то время как лексема .module указывает имя самого модуля (CarLibrary.dll). Лексема .ver определяет номер версии, назначенный для компоновочного блока в соответствии с атрибутом [AssemblyVersion] из AssemblyInfo.cs. Подробнее об управлении версиями компоновочного блока будет говориться в этой главе позже, а сейчас необходимо заметить, что групповой символ * в атрибуте [AssemblyVersion] информирует Visual Studio 2005 о необходимости в процессе компиляции выполнить приращение для идентификатора версии в отношении номеров компоновки и варианта.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
7.2.4. Измерения и анализ
7.2.4. Измерения и анализ Ключевые практики раздела «Измерения и анализ» описывают основные методы измерений, необходимых для определения статуса операций, относящихся к разделу «Выполняемые действия». Являясь неотъемлемой частью группы ключевых процессов, измерения
Измерения и анализ
Измерения и анализ Измерение 1 Выполнение измерений и использование их результатов для определения статуса операций по управлению установленными требованиями.Примеры измерений:определение статуса каждого из установленных требований;определение статуса изменений
Измерения и анализ
Измерения и анализ Измерение 1 Выполнение измерений и использование их результатов для определения состояния работ по планированию проекта разработки.Примеры измерений:определение степени выполнения этапов работ по планированию разработки в сравнении с
Измерения и анализ
Измерения и анализ Измерение 1 Выполнение измерений и использование их результатов для определения состояния работ по отслеживанию хода проекта и контролю над ним.Примеры измерений: определение объема трудозатрат и других ресурсов, вложенных в выполнение работ по
Лексический анализ
Лексический анализ Введение В последней главе я оставил вас с компилятором который должен почти работать, за исключением того, что мы все еще ограничены односимвольными токенами. Цель этого урока состоит в том, чтобы избавиться от этого ограничения раз и навсегда. Это
Урок № 96. Анализ счета и анализ субконто
Урок № 96. Анализ счета и анализ субконто Анализ счета также относится к числу популярных отчетов программы "1С". Чтобы сформировать этот отчет, нужно выполнить команду главного меню Отчеты | Анализ счета, затем в открывшемся окне указать отчетный период, счет и
8.1. Анализ
8.1. Анализ Определение границ рассматриваемой задачи Врезка ознакомила вас с требованиями к системе мониторинга погоды. Это довольно простая задача, решение которой позволяет обойтись всего несколькими классами. Инженер, не вполне искушенный во всех особенностях
9.1. Анализ
9.1. Анализ Определение границ проблемной области На врезке представлены детально сформулированные требования к библиотеке базовых классов. К сожалению, эти требования навряд ли практически выполнимы: библиотека, содержащая абстракции, необходимые для всех возможных
10.1. Анализ
10.1. Анализ Определение границ задачи Требования к системе складского учета показаны на врезке. Это достаточно сложная программная система, затрагивающая все аспекты, связанные с движением товара на склад и со склада. Для хранения продукции служит, естественно, реальный
11.1. Анализ
11.1. Анализ Определение границ предметной области Как сказано во врезке, мы намерены заняться криптоанализом - процессом преобразования зашифрованного текста в обычный. В общем случае процесс дешифровки является чрезвычайно сложным и не поддается даже самым мощным
12.1. Анализ
12.1. Анализ Определение границ проблемной области Для большинства люден, живущих в США, поезда являются символом давно ушедшей эпохи. В Европе и странах Востока ситуация совершенно противоположная. В отличие от США, в Европе мало национальных и международных
Роль манифеста компоновочного блока
Роль манифеста компоновочного блока Наконец вспомним, что компоновочный блок .NET содержит также метаданные, описывающие сам компоновочный блок (эти метаданные называются манифест). Среди всего прочего, в манифесте документируются все внешние компоновочные блоки,
Анализ CIL-кода
Анализ CIL-кода Напомним, что компоновочный блок не содержит специфических для платформы инструкций, а содержит независимый от платформы CIL-код. Когда среда выполнения .NET загружает компоновочный блок в память, этот CIL-код компилируется (с помощью JIT-компилятора) в
Анализ манифеста SharedCarLibClient
Анализ манифеста SharedCarLibClient Напомним, что при генерировании строгого имени компоновочного блока в манифест компоновочного блока записывается значение открытого ключа. Точно так же, когда клиент ссылается на строго именованный компоновочный блок, в его манифест
2.4. АНАЛИЗ ТРЕБОВАНИЙ К СИСТЕМЕ (СИСТЕМНЫЙ АНАЛИЗ) И ФОРМУЛИРОВКА ЦЕЛЕЙ
2.4. АНАЛИЗ ТРЕБОВАНИЙ К СИСТЕМЕ (СИСТЕМНЫЙ АНАЛИЗ) И ФОРМУЛИРОВКА ЦЕЛЕЙ Задача оптимизации разработки программ состоит в достижении целей при минимально возможной затрате ресурсов.Системный анализ в отличие от предварительного системного исследования — это