将并行程序集用作资源

可以在应用程序的二进制可执行头文件中将清单作为资源添加到应用程序。 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 重定向呼叫。 其他方法的加载不受影响。