Partilhar via


Sequência de pesquisa de montagem

Se uma aplicação isolada especificar uma dependência de conjunto, o sistema procurará inicialmente em paralelo o conjunto entre os conjuntos compartilhados na pasta WinSxS. Se o assembly necessário não for encontrado, lado a lado procurará um assembly privado instalado em uma pasta da estrutura de diretórios do aplicativo.

de assemblies privados podem ser implantados nos seguintes locais na estrutura de diretórios do aplicativo:

  • Na pasta do aplicativo. Normalmente, esta é a pasta que contém o arquivo executável do aplicativo.
  • Em uma subpasta na pasta do aplicativo. Uma subpasta deve ter o mesmo nome que a assemblagem.
  • Em uma subpasta específica do idioma na pasta do aplicativo. O nome da subpasta é uma cadeia de códigos de linguagem DHTML que indica uma língua-cultura ou idioma.
  • Na pasta do aplicativo, dentro de uma subpasta específica de idioma. O nome da subpasta superior é uma cadeia de códigos de linguagem DHTML que indica uma língua-cultura ou idioma. A subpasta interna tem o mesmo nome que a montagem.

A primeira vez que procura lado a lado por um assembly privado, ele determina se existe uma subpasta específica do idioma na estrutura de diretórios do aplicativo. Se não existir nenhuma subpasta específica do idioma, realiza uma pesquisa paralela para o assemblage privado nos seguintes locais na sequência indicada.

  1. Lado a lado pesquisa a pasta WinSxS.
  2. \\<appdir>\<assemblyname>.DLL
  3. \\<appdir>\<assemblyname>.manifest
  4. \\<appdir>\<assemblyname>\<assemblyname>.DLL
  5. \\<appdir>\<assemblyname>\<assemblyname>.manifest

Se existir uma subpasta específica para o idioma, a estrutura de diretórios da aplicação pode conter a assemblagem privada localizada em vários idiomas. Lado a lado pesquisa as subpastas específicas do idioma para garantir que o aplicativo use o idioma especificado ou o melhor idioma disponível. As subpastas específicas do idioma são nomeadas usando uma cadeia de caracteres de códigos de idioma DHTML que especificam uma língua-cultura ou idioma. Se existir uma subpasta específica do idioma, faz-se a pesquisa lado a lado pelo assembly privado nos seguintes locais usando a seguinte sequência.

  1. A função 'Side-by-side' pesquisa a pasta WinSxS.
  2. \\<appdir>\<idioma-cultura>\<assemblyname>.DLL
  3. \\<appdir>\<idioma-cultura>\<assemblyname>.manifest
  4. \\<appdir>\<idioma-cultura>\<assemblyname>\<assemblyname>.DLL
  5. \\<appdir>\<idioma-cultura>\<assemblyname>\<assemblyname>.manifest

Observe que a sequência de pesquisa lado a lado encontra um ficheiro DLL com o nome do assembly e interrompe-se antes de procurar por um ficheiro de manifesto com o nome do assembly. A maneira recomendada de manipular um assembly privado que é uma DLL é colocar o manifesto do assembly no arquivo DLL como um recurso. O ID do recurso deve ser igual a 1 e o nome do assembly privado pode ser o mesmo que o nome da DLL. Por exemplo, se o nome da DLL for MICROSOFT.WINDOWS.MYSAMPLE.DLL, o valor do atributo name usado no elemento assemblyIdentity do manifesto do assembly também pode ser Microsoft.Windows.mysample. Como alternativa, pode-se colocar o manifesto do assembly num arquivo separado; contudo, o nome do assembly e seu manifesto devem ser diferentes do nome da DLL. Por exemplo, Microsoft.Windows.mysampleAsm, Microsoft.Windows.mysampleAsm.manifest e MICROSOFT.WINDOWS.MYSAMPLE.DLL.

Por exemplo, se myapp estiver instalado na raiz da unidade c: e exigir myasm em francês-belga, side-by-side usa a seguinte sequência para procurar a melhor aproximação a uma instância localizada de myasm.

  1. Side-by-side procura WinSxS para a versão fr-be.
  2. C:\myapp\fr-be\myasm.dll
  3. c:\myapp\fr-be\myasm.manifest
  4. C:\myapp\fr-be\myasm\myasm.dll
  5. c:\myapp\fr-be\myasm\myasm.manifest
  6. Side-by-side pesquisa WinSxS para a versão fr.
  7. C:\myapp\fr\myasm.dll
  8. c:\myapp\fr\myasm.manifest
  9. C:\myapp\fr\myasm\myasm.dll
  10. c:\myapp\fr\myasm\myasm.manifest
  11. Side-by-side procura WinSxS para a versão en-us.
  12. C:\myapp\en-us\myasm.dll
  13. c:\myapp\en-us\myasm.manifest
  14. C:\myapp\en-us\myasm\myasm.dll
  15. c:\myapp\en-us\myasm\myasm.manifest
  16. Side-by-side procura WinSxS para a versão en.
  17. C:\myapp\en\myasm.dll
  18. c:\myapp\en\myasm.manifest
  19. C:\myapp\en\myasm\myasm.dll
  20. c:\myapp\en\myasm\myasm.manifest
  21. Side-by-side pesquisa WinSxS para a versão sem idioma.
  22. C:\myapp\myasm.dll
  23. c:\myapp\myasm.manifest
  24. C:\myapp\myasm\myasm.dll
  25. c:\myapp\myasm\myasm.manifest

Se a pesquisa lado a lado alcançar uma versão do assembly com neutralidade de idioma e uma versão Multilanguage User Interface (MUI) do Windows estiver presente no sistema, o lado a lado tentará associar-se a <assemblyname>.mui. Side-by-side não tenta vincular a <assemblyname>.mui se a pesquisa atingir uma versão localizada do assembly. O manifesto do conjunto de um conjunto neutro em relação ao idioma não terá um atributo de idioma no seu elemento assemblyIdentity. Se o side-by-side chegar a um assembly de idioma neutro e o MUI estiver instalado, o side-by-side pesquisará os seguintes locais usando a sequência a seguir para <assemblyname>.mui. Side-by-side usa a mesma sequência de pesquisa se o assembly for neutro em termos de cultura, exceto <nenhum idioma> não for pesquisado.

  1. Side-by-side procura na pasta WinSxS por <assemblyname>.mui.
  2. \\<idioma-cultura do utilizador>\<assemblyname>.mui
  3. \\<idioma do usuário>\<assemblyname>.mui
  4. \\<idioma-cultura do sistema>\<assemblyname>.mui
  5. \\ Idioma do sistema<>\<assemblyname>.mui
  6. \\<nenhum idioma>\<assemblyname>.mui

Por exemplo, se a pesquisa lado a lado encontrar o assembly privado em c:\myapp\myasm\myasm.manifest, sendo que myasm é neutro em termos de idioma. Side-by-side usa a seguinte sequência para procurar myasm.mui. Observe que o modo de execução em paralelo não procurará um assembly MUI neutro em termos de idioma.

  1. Realiza uma pesquisa paralela no WinSxS pela versão fr-be do assembly MUI.
  2. C:\myapp\fr-be\myasm.mui.dll
  3. c:\myapp\fr-be\myasm.mui.manifest
  4. C:\myapp\fr-be\myasm\myasm.mui.dll
  5. c:\myapp\fr-be\myasm\myasm.mui.manifest
  6. Side-by-side procura WinSxS para a versão fr do assembly MUI.
  7. C:\myapp\fr\myasm.mui.dll
  8. c:\myapp\fr\myasm.mui.manifest
  9. C:\myapp\fr\myasm\myasm.mui.dll
  10. c:\myapp\fr\myasm\myasm.mui.manifest
  11. Side-by-side procura WinSxS para a versão en-us do assembly MUI.
  12. C:\myapp\en-us\myasm.mui.dll
  13. c:\myapp\en-us\myasm.mui.manifest
  14. C:\myapp\en-us\myasm\myasm.mui.dll
  15. c:\myapp\en-us\myasm\myasm.mui.manifest
  16. Procura lado a lado por WinSxS para a versão em inglês do conjunto MUI.
  17. C:\myapp\en\myasm.mui.dll
  18. c:\myapp\en\myasm.mui.manifest
  19. C:\myapp\en\myasm\myasm.mui.dll
  20. c:\myapp\en\myasm\myasm.mui.manifest