Usando assemblies lado a lado como um recurso
Você pode adicionar um manifesto a um aplicativo como um recurso no arquivo de cabeçalho executável binário do aplicativo. O valor da MANIFEST_RESOURCE_ID determina como as dependências de assembly lado a lado descritas no manifesto são usadas pelo carregador.
Se você definir o MANIFEST_RESOURCE_ID como 1, o carregador usará as dependências de assembly lado a lado especificadas no manifesto como o padrão do processo. Todos os plug-ins também usam esse padrão de processo.
A tabela a seguir resume como o carregador usa o manifesto para diferentes valores de MANIFEST_RESOURCE_ID quando o aplicativo é compilado com o sinalizador -DISOLATION_AWARE_ENABLED. Observe que os valores de 1 a 16 são reservados para uso pelo Windows XP. Um desenvolvedor poderá usar outros valores se quiser gerenciar os contextos de ativação usando as funções descritas na Referência de Contexto de Ativação.
Valor de MANIFEST_RESOURCE_ID | O manifesto especifica o Padrão de Processo? | Usar para Importações Estáticas? | Usar para um EXE? | Usar para uma DLL? | Usa a versão lado a lado de assemblies se compilado com -DISOLATION_AWARE_ENABLED? |
---|---|---|---|---|---|
1 | Sim | Yes | Yes | Não | Sim |
2 | Não | Sim | Yes | Sim | Sim |
3 | Não | Não | Yes | Yes | Sim |
MANIFEST_RESOURCE_ID 1 deve ser usado para aplicativos que não hospedam plug-ins. Use MANIFEST_RESOURCE_ID 1 quando todas as partes do aplicativo devem usar a versão do assembly lado a lado especificado no manifesto. Para obter mais informações, consulte Habilitando um assembly em um aplicativo sem extensões.
MANIFEST_RESOURCE_ID 2 deve ser usado para aplicativos que hospedam controles ou plug-ins de terceiros. Nesse caso, o manifesto afeta todos os assemblies lado a lado sendo carregados por carregamento estático, chamadas para DllMain e chamadas redirecionadas por -DISOLATION_AWARE_ENABLED. Para obter mais informações, consulte Habilitando um assembly em um aplicativo que hospeda uma DLL, extensão ou Painel de Controle.
MANIFEST_RESOURCE_ID 3 deve ser usado apenas para redirecionar chamadas por -DISOLATION_AWARE_ENABLED. O carregamento por outros métodos não é afetado.