|
|||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||
|
Маніфест
Теоретично
збірка може бути влаштована вельми
складно, тому в неї включається маніфест
— сукупність всіх відомостей про
збірку, необхідних виконавчому
середовищу (CLR) для завантаження, компіляції (при
необхідності) і виконання збірки.
У маніфест входять наступні
відомості:
Саме завдяки наявності
маніфесту з'являється можливість
створення складок, що
складаються з декількох файлів.
Крім того, дані маніфесту
замінюють складну систему реєстрації
компонентів в реєстрі. Перше
уявлення про збірку і її маніфест
дає файл Assemblylnfo.vb; щоб проглянути
вміст цього файлу, двічі
клацніть на відповідному рядку
вікна вирішення VS .NET. Як видно з
приведеного нижче прикладу, цей текстовий
файл містить численні
атрибути збірки. Більшість
атрибутів (наприклад, назва
організації) можна редагувати
уручну, хоча частіше за
значення задаються в IDE за допомогою
діалогових вікон властивостей проекту. Imports System.Reflection Imports System.Runtime.InteropServices 'Наступна
група атрибутів містить загальну
інформацію про збірку. ' Зміните
значення цих атрибутів, щоб
змінити дані. ' пов'язані із
збіркою. 'Review the values of the assembly attributes <Assembly:assemblytitle("Sample")> <Assembly:assemblydescription("")> <Assembly:assemblycompany("Apress")> <Assemblу:assemblуproduct("")> <Assembly:assemblycopyright("2001")> <Assembly:assemblytrademark("")> <Assembly:clscompliant(True)> ' Наступний QUID використовується для ідентифікації бібліотеки типів. ' якщо проект використовуватиметься в СОМ <Assembly:guid("5D7BAFDE-EACA-4653-9C55-BA619E13D447")> ' Дані
версії для збірки складаються з
наступних чотирьох величин: '
Основна версія '
Додаткова версія '
Ревізія ' Номер
побудови ' Ви можете задати значення всіх атрибутів або задати номери побудови і ревізії за умовчанням. ' Для цього використовується знак '*', як показано нижче. <Assembly:assemblyversion("1.0.*")>
У каталозі \bin .NET
SDK знаходиться корисна програма
ILDASM, яка може використовуватися
для дослідження складок і їх
маніфестів. На мал. 13.1 показано,
яку інформацію видає ILDASM для
програми Employee з розділу 4.
При подвійному
клацанні на рядку Manifest з мал. 13.1
відкривається вікно, показане на мал.
13.2. Звернете увагу на
перерахування всіх складок, від
яких залежить дана збірка, а
також на опис класу Employee. Маніфест збірки
завжди містить два обов'язкові
атрибути, вказаних у верхній і
нижній частині мал. 13.2:
Як
ім'я збірки може використовуватися
будь-яке допустиме ім'я файлу. Звичайне
ім'я збірки задається в діалоговому
вікні — виконаєте команду Project > Properties
і перейдіть на сторінку General в
категорії Common Properties.
Мал. 13.1. Програма
ILDASM у дії Номери версії (основний,
додатковий, ревізія і
побудова) зберігаються в наступному
форматі: <0сн>.<дополн>.<ревизия>.<построение> Ці значення
можна задати прямо у файлі Assemblylnfo.vb.
Щоб включити режим
автоматичної нумерації, введіть
версію у форматі «х.у .*». Знак «*»
указує VS на те, що номери
ревізії і побудови повинні
генеруватися автоматично.
У багатьох складках також зустрічаються ще два атрибути:
Локальний
контекст (culture) містить
інформацію про національні
стандарти, підтримувані збіркою.
Не плутайте локальний контекст з
мовою. Наприклад, і у
Великобританії і в США говорять на\нглійськом
мові, але локальні контексти в
цих країнах розрізняються (так, в них
використовуються різні формати виведення
дат і грошових сум).
Мал. 13.2. Маніфест
класу Employee Сильне ім'я (strong name)
можна вважати за аналог GUID, хоча
воно влаштоване дещо складніше.
Сильні імена використовуються лише
для загальних складок. Додаткова
інформація приведена в наступному
розділі.
На момент написання книги
в середовищі програмування не
підтримувалося створення
складок, що складаються
з декількох файлів. Якщо
така необхідність виникала, програмістові
доводилося звертатися
до документації і використовувати
відповідні утиліти
.NET SDK. Всі компілятори командного
рядка .NET дозволяють створювати
багатофайлові складки. Хоча
в книзі дана тема не розглядається,
ми хочемо звернути вашу
увагу на одну цікаву особливість
багатофайлових складок: вони
теж можуть встановлюватися простим
копіюванням, причому встановлювати
відразу всі файли на комп'ютер
кінцевого користувача не
обов'язково — компоненти можуть копіюватися
у міру потреби. Ця
можливість дуже зручна для установки
по Інтернету, де доводиться
враховувати об'єм інформації,
що пересилається. Наприклад,
в багатофайловій збірці прийом
компоненту довідкової системи
можна відкласти до того моменту,
коли користувач захоче викликати
довідку.
|
|
|||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||