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

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