Использование параллельных сборок в качестве ресурса

Манифест можно добавить в приложение в качестве ресурса в файл заголовка двоичного исполняемого файла приложения. Значение 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. Загрузка другими методами не затрагивается.