Виявлення збірок у середовищі виконання, Microsoft Docs
Для успішного розгортання програми .NET Framework слід розуміти, як загальномовне середовище виконання виявляє та пов'язує збірки, з яких складається програма. За умовчанням середовище виконання намагається виконати прив'язку до тієї самої версії складання, з якою було скомпоновано програму. Ця поведінка за умовчанням може бути перевизначена за допомогою параметрів конфігураційного файлу.
Процес виявлення складання та дозволу посилання складання загальномовне середовище виконання виробляє за кілька кроків. Пояснення кожного з цих кроків наведено у наступних розділах. Термін "зондування" зазвичай використовується при описі того, як середовище виконання виявляє складання; вона посилається на набір евристичних правил, що використовуються для виявлення складання, ґрунтуючись на її імені та регіональних параметрах.
Ініціювання прив'язки
Насамкінець можна створити динамічне посилання, використовуючи метод, такий як System.Reflection.Assembly.Load, і надати тільки часткові відомості; потім посилання повністю визначають за допомогою елемента у файлі конфігурації програми. Цей елемент дозволяє надавати повні дані посилання (ім'я, версію, мову та регіональні параметри та, у разі наявності, маркер безпеки відкритого ключа) у файлі конфігурації програми, а не в тілі коду. Цей підхід слід використовувати, якщо необхідно повністю визначити посилання на складання поза каталогом програми або якщо необхідно посилатися на складання в глобальному кеші збірок і хочеться скористатися зручностями визначення повного посилання у конфігураційному файлі, а не в тілі коду.
Часткові посилання не повинні застосовуватися для збірок, яківикористовуються спільно кількома додатками. Оскільки параметри конфігурації застосовуються до кожної програми, а не до кожної збірки, для загальної збірки, яка використовує таке часткове посилання, потрібно, щоб кожна програма, що використовує загальне складання, мала повну інформацію у своєму файлі конфігурації.
При дозволі посилання збірки в ім'я виконання виконує наступні дії.
Визначає правильну версію збірки шляхом аналізу застосовних конфігураційних файлів, включаючи файл конфігурації програми, файл політики видавця та файл конфігурації комп'ютера. Якщо файл конфігурації знаходиться на віддалено розташованому комп'ютері, середовище виконання має спочатку виявити та завантажити файл конфігурації програми.
Перевіряє, чи прив'язка імені збірки виконувалася раніше і якщо виконувалася, використовує раніше завантажену збірку. Якщо попередній запит на завантаження збірки закінчився невдачею, запит негайно переривається без спроби завантажити збірку.
Кешування збоїв прив'язки збірок введено вперше у .NET Framework версії 2.0.
Перевіряє глобальний кеш збірок. Якщо в кеші виявляється складання, середовище виконання використовує знайдене складання.
Якщо конфігурація та політика видавця не впливають на вихідне посилання, і якщо запит прив'язки було створено за допомогою методу Assembly.LoadFrom, середовище виконання перевіряє підказки про місцезнаходження.
Якщо база коду знаходиться у файлах конфігурацій, середовище виконання перевіряє лише це місце. Якщо відбувається збій зондування, середовище виконання визначає, що запит прив'язки не виконаний і подальшого зондування не здійснюється.
Перевірки наявності збирання за допомогою евристичних правил описані в розділі зондування. Якщо збірка незнайдена після зондування, середовище виконання запитує надання збірки у інсталятора Windows. Ця операція діє як функція встановлення на запит.
Якщо збірки не є складаннями із суворими іменами, для них не проводяться ні перевірка версії, ні пошук у глобальному кеші збірок.