使用並存元件作為資源

您可以將資訊清單新增至應用程式,作為應用程式二進位可執行檔標頭檔中的資源。 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 Yes No Yes
2 No Yes Yes Yes Yes
3 No Yes Yes Yes

 

MANIFEST_RESOURCE_ID 1 應該用於未裝載外掛程式的應用程式。當應用程式的所有元件都應該使用資訊清單中指定的並存元件版本時,請使用 MANIFEST_RESOURCE_ID 1。 如需詳細資訊,請參閱 在不含擴充功能的應用程式中啟用元件

MANIFEST_RESOURCE_ID 2 應該用於裝載協力廠商控制項或外掛程式的應用程式。在此情況下,資訊清單會影響靜態載入所載入的所有並存元件、DllMain 的呼叫,以及由 -DISOLATION_AWARE_ENABLED 重新導向的呼叫。 如需詳細資訊,請參閱在裝載 DLL、擴充功能或主控台的應用程式中啟用元件

MANIFEST_RESOURCE_ID 3 應該只使用 -DISOLATION_AWARE_ENABLED 重新導向呼叫。 其他方法的載入不會受到影響。