Udostępnij przez


Używanie zestawów równoległych jako zasobu

Do aplikacji można dodać manifest jako zasób w nagłówku pliku wykonywalnego binarnego aplikacji. Wartość MANIFEST_RESOURCE_ID określa sposób użycia zależności zestawu równoległego opisanego w manifeście przez moduł ładujący.

Jeśli ustawisz MANIFEST_RESOURCE_ID na 1, moduł ładujący używa zależności zestawu side-by-side określonych w manifeście jako domyślną konfigurację procesu. Wszystkie wtyczki używają również tego procesu domyślnego.

W poniższej tabeli przedstawiono podsumowanie sposobu, w jaki moduł ładujący używa manifestu dla różnych wartości MANIFEST_RESOURCE_ID podczas kompilowania aplikacji z flagą -DISOLATION_AWARE_ENABLED. Należy pamiętać, że wartości 1–16 są zarezerwowane do użycia przez system Windows XP. Deweloper może użyć innych wartości, jeśli chce zarządzać kontekstami aktywacji, korzystając z funkcji opisanych w Odwołanie do kontekstu aktywacji.

Wartość MANIFEST_RESOURCE_ID Czy manifest określa domyślną wartość dla procesu? Czy używać do importowania statycznego? Czy używać pliku EXE? Czy używać biblioteki DLL? Używa równoległej wersji zestawów w przypadku kompilacji z -DISOLATION_AWARE_ENABLED?
1 Tak Tak Tak Nie Tak
2 Nie Tak Tak Tak Tak
3 Nie Nie Tak Tak Tak

 

MANIFEST_RESOURCE_ID 1 należy używać w przypadku aplikacji, które nie hostują wtyczek. Użyj MANIFEST_RESOURCE_ID 1, gdy wszystkie części aplikacji powinny używać wersji zestawu równoległego określonego w manifeście. Aby uzyskać więcej informacji, zobacz Włączanie zestawu w aplikacji bez rozszerzeń.

MANIFEST_RESOURCE_ID 2 należy używać w przypadku aplikacji hostujących kontrolki lub wtyczki innych firm. W tym przypadku manifest wpływa na wszystkie asemblaże ładowane równolegle przez ładowanie statyczne, wywołania do DllMain i wywołania przekierowane przez -DISOLATION_AWARE_ENABLED. Aby uzyskać więcej informacji, zobacz Włączanie zestawu w aplikacji hostującej bibliotekę DLL, rozszerzenie lub panel sterowania.

Należy używać MANIFEST_RESOURCE_ID 3 tylko do przekierowywania wywołań przez -DISOLATION_AWARE_ENABLED. Nie ma to wpływu na ładowanie przez inne metody.