可以将清单作为应用程序二进制可执行文件头文件中的资源添加到应用程序。 MANIFEST_RESOURCE_ID的值确定加载程序如何使用清单中描述的并行程序集依赖项。
如果将MANIFEST_RESOURCE_ID设置为 1,加载程序将使用清单中指定的并行程序集依赖项作为进程默认值。 所有插件也都使用此过程默认值。
下表总结了使用 -DISOLATION_AWARE_ENABLED 标志编译应用程序时,加载程序如何将清单用于MANIFEST_RESOURCE_ID的不同值。 请注意,值 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 的调用重定向。 其他方法的加载不受影响。