Использование параллельных сборок в качестве ресурса
Манифест можно добавить в приложение в качестве ресурса в файл заголовка двоичного исполняемого файла приложения. Значение MANIFEST_RESOURCE_ID определяет, как загрузчик использует параллельные зависимости сборки, описанные в манифесте.
Если для MANIFEST_RESOURCE_ID задано значение 1, загрузчик использует зависимости параллельной сборки, указанные в манифесте, в качестве процесса по умолчанию. Все подключаемые модули также используют этот процесс по умолчанию.
В следующей таблице описано, как загрузчик использует манифест для различных значений MANIFEST_RESOURCE_ID при компиляции приложения с флагом -DISOLATION_AWARE_ENABLED. Обратите внимание, что значения 1–16 зарезервированы для использования в Windows XP. Разработчик может использовать другие значения, если он хочет управлять контекстами активации с помощью функций, которые описаны в справочнике по контексту активации.
Значение MANIFEST_RESOURCE_ID | Манифест указывает значение По умолчанию процесса? | Используете для статических импортов? | Используете для EXE- файла? | Используете библиотеку DLL? | Использует параллельную версию сборок при компиляции с помощью -DISOLATION_AWARE_ENABLED? |
---|---|---|---|---|---|
1 | Да | Да | Да | Нет | Да |
2 | Нет | Да | Да | Да | Да |
3 | Нет | Нет | Да | Да | Да |
MANIFEST_RESOURCE_ID 1 следует использовать для приложений, в которых не размещаются подключаемые модули. Используйте MANIFEST_RESOURCE_ID 1, если все части приложения должны использовать версию параллельной сборки, указанную в манифесте. Дополнительные сведения см. в разделе Включение сборки в приложении без расширений.
MANIFEST_RESOURCE_ID 2 следует использовать для приложений, в которых размещаются сторонние элементы управления или подключаемые модули. В этом случае манифест влияет на все параллельные сборки, загружаемые статической загрузкой, вызовами DllMain и перенаправленными -DISOLATION_AWARE_ENABLED. Дополнительные сведения см. в разделе Включение сборки в приложении, где размещается библиотека DLL, расширение или панель управления.
MANIFEST_RESOURCE_ID 3 следует использовать для перенаправления вызовов только с помощью -DISOLATION_AWARE_ENABLED. Загрузка другими методами не затрагивается.