Sdílet prostřednictvím


Posloupnost vyhledávání sestavení

Pokud izolovaná aplikace uvádí závislost na sestavení, mechanismus „side-by-side“ nejprve vyhledává dané sestavení mezi sdílenými sestaveními ve složce WinSxS. Pokud se požadované sestavení nenajde, postupně se vyhledá privátní sestavení nainstalované ve složce adresářové struktury aplikace.

Soukromá sestavení mohou být nasazena na následujících místech v adresářové struktuře aplikace:

  • Ve složce aplikace. Obvykle se jedná o složku obsahující spustitelný soubor aplikace.
  • V podsložce ve složce aplikace. Podsložka musí mít stejný název jako sestavení.
  • V podsložce specifické pro jazyk ve složce aplikace. Název podsložky je řetězec kódů DHTML označujících jazykovou kulturu nebo jazyk.
  • V podsložce podsložky specifické pro jazyk ve složce aplikace. Název nadřazené podsložky je řetězec kódů jazyka DHTML označujících jazykové/kulturní prostředí nebo jazyk. Podsložka hlouběji vnořená má stejný název jako sestavení.

Při prvním paralelním hledání soukromého sestavení určuje, zda v adresářové struktuře aplikace existuje jazykově specifická podsložka. Pokud žádná podsložka specifická pro jazyk neexistuje, vyhledá privátní sestavení na následujících místech vedle sebe pomocí následujícího pořadí.

  1. Paralelní vyhledávání ve složce WinSxS.
  2. \\<appdir>\<název sestavení>.DLL
  3. \\<appdir>\<název sestavení>.manifest
  4. \\<appdir>\<název sestavení>\<název sestavení>.DLL
  5. \\<appdir>\<název sestavení>\<název sestavení>.manifest

Pokud existuje podsložka specifická pro jazyk, adresářová struktura aplikace může obsahovat privátní sestavení lokalizované v několika jazycích. Vedle sebe prohledá podsložky specifické pro konkrétní jazyk, aby se zajistilo, že aplikace používá zadaný jazyk nebo nejlepší dostupný jazyk. Podsložky specifické pro jazyk jsou pojmenované pomocí DHTML jazykových kódů, které určují jazykově-kulturní verzi nebo jazyk. Pokud existuje podsložka specifická pro jazyk, vyhledá privátní sestavení vedle sebe v následujících umístěních pomocí následujícího pořadí.

  1. Vedle sebe vyhledá složku WinSxS.
  2. \\<appdir>\<jazykové verze>\<název sestavení>.DLL
  3. \\<appdir>\<jazyk-kultura>\<jméno sestavení>.manifest
  4. \\<appdir>\<jazyková kultura>\<název sestavení>\<název sestavení>.DLL
  5. \\<appdir>\<jazyková kultura>\<název sestavení>\<název sestavení>.manifest

Všimněte si, že sekvence hledání vedle sebe najde soubor DLL s názvem sestavení a zastaví se před vyhledáním souboru manifestu s názvem sestavení. Doporučeným způsobem zpracování privátního sestavení DLL je umístit manifest sestavení do souboru DLL jako zdroj. ID prostředku musí být rovno 1 a název privátního sestavení může být stejný jako název knihovny DLL. Pokud je například název knihovny DLL MICROSOFT.WINDOWS.MYSAMPLE.DLL, může být hodnota atributu name použitého v assemblyIdentity elementu manifestu sestavení také Microsoft.Windows.mysample. Jako alternativu můžete dát manifest sestavení do samostatného souboru, ale název sestavení a jeho manifestu se pak musí lišit od názvu knihovny DLL. Například Microsoft.Windows.mysampleAsm, Microsoft.Windows.mysampleAsm.manifest a MICROSOFT.WINDOWS.MYSAMPLE.DLL.

Pokud je například aplikace nainstalována v kořenovém adresáři jednotky C: a vyžaduje myasm ve francouzštině (belgická), používá systém side-by-side následující sekvenci k vyhledání nejlepšího možného přiblížení lokalizované instance myasm.

  1. Vedle sebe vyhledá WinSxS fr-be verzi.
  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. Vedle sebe vyhledá WinSxS verzi 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. Vedle sebe provádí hledání ve WinSxS pro verzi 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. WinSxS vyhledá anglickou verzi vedle sebe.
  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. Paralelní hledání ve WinSxS pro jazykově neutrální verzi.
  22. c:\myapp\myasm.dll
  23. c:\myapp\myasm.manifest
  24. c:\myapp\myasm\myasm.dll
  25. c:\myapp\myasm\myasm.manifest

Pokud souběžné vyhledávání dosáhne jazykové neutrální verze sestavení a Multilanguage User Interface (MUI) verze Systému Windows je k dispozici vedle sebe, pokusí se vytvořit vazbu na <název sestavení>.mui. Vedle sebe se nepokouší vytvořit vazbu na <název sestavení>.mui, pokud hledání dosáhne lokalizované verze sestavení. Manifest sestavení sestavení neutrálního jazyka nebude mít atribut jazyka v jeho assemblyIdentity elementu. Pokud paralelní uspořádání dosáhne sestavení jazykově neutrálního a je-li MUI nainstalováno, paralelní uspořádání vyhledá následující umístění pomocí následujícího pořadí pro <název sestavení>.mui. Souběžná funkce používá stejnou sekvenci hledání, pokud je sestavení neutrální pro jazykovou verzi, s výjimkou <, že se nevyhledá žádný jazyk>.

  1. Vedle sebe vyhledá složku WinSxS <název sestavení>.mui.
  2. \\<jazykovou verzi uživatele>\<název sestavení>.mui
  3. \\<jazyk uživatele>\<název sestavení>.mui
  4. \\<jazyková verze systému>\<název sestavení>.mui
  5. \\<systémový jazyk>\<název sestavení>.mui
  6. \\<žádný jazyk>\<název sestavení>.mui

Pokud například hledání vedle sebe najde privátní sestavení v c:\myapp\myasm\myasm.manifest a myasm je jazykově neutrální sestavení. K vyhledání myasm.mui se využívá následující sekvence. Všimněte si, že v rámci rozšíření nebude hledat jazykově neutrální MUI sestavu.

  1. WinSxS paralelně vyhledává fr-be verzi sestavení 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. Vedle sebe vyhledá WinSxS fr verzi sestavení 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. Vedle sebe vyhledá WinSxS en-us verzi sestavení 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. Vedle sebe vyhledá WinSxS en verzi sestavení 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